Neue Funktionen

In den folgenden Abschnitten werden mehrere der neuen Features in Windows GDI+ beschrieben.

Farbverlaufspinsel

GDI+ erweitert die Windows-Grafikgeräteschnittstelle (GDI), indem es lineare Farbverlaufs- und Pfadverlaufspinsel zum Füllen von Formen, Pfaden und Regionen bereitstellt. Farbverlaufspinsel können auch zum Zeichnen von Linien, Kurven und Pfaden verwendet werden. Wenn Sie eine Form mit einem linearen Farbverlaufspinsel füllen, ändert sich die Farbe allmählich, wenn Sie sich über die Form bewegen. Angenommen, Sie erstellen einen horizontalen Farbverlaufspinsel, indem Sie blau am linken Rand einer Form und Grün am rechten Rand angeben. Wenn Sie diese Form mit dem horizontalen Farbverlaufspinsel füllen, ändert sie sich allmählich von blau zu grün, wenn Sie sich von der linken Kante zum rechten Rand bewegen. Auf ähnliche Weise ändert ein Shape, das mit einem Pinsel für vertikalen Farbverlauf gefüllt ist, die Farbe, wenn Sie sich von oben nach unten bewegen. Die folgende Abbildung zeigt eine Ellipse, die mit einem horizontalen Farbverlaufspinsel gefüllt ist, und einen Bereich, der mit einem diagonalen Farbverlaufspinsel gefüllt ist.

Abbildung einer Form, die von einem horizontalen Farbverlauf und einem durch einen diagonalen Farbverlauf gespeichert wird

Wenn Sie eine Form mit einem Pfadverlaufspinsel füllen, haben Sie eine Vielzahl von Optionen, um anzugeben, wie sich die Farben ändern, wenn Sie von einem Teil der Form zu einem anderen wechseln. Eine Option besteht darin, eine Mittlere Farbe und eine Begrenzungsfarbe zu haben, damit sich die Pixel schrittweise von einer Farbe zur anderen ändern, wenn Sie sich von der Mitte der Form zu den äußeren Rändern bewegen. Die folgende Abbildung zeigt einen Pfad (erstellt aus einem Paar von Bézier-Splines), der mit einem Pfadverlaufspinsel gefüllt ist.

Abbildung einer Form, die einem Unendlichkeitszeichen ähnelt, aus Blau gefüllt, wo sich die Hälften an den Rändern zu Aqua treffen

Kardinale Splines

GDI+ unterstützt Kardinalsplines, die in GDI nicht unterstützt werden. Ein kardinaler Spline ist eine Abfolge einzelner Kurven, die miteinander verbunden werden, um eine größere Kurve zu bilden. Der Spline wird durch ein Array von Punkten angegeben und durchläuft jeden Punkt in diesem Array. Ein Kardinalspline verläuft reibungslos (keine scharfen Ecken) durch jeden Punkt im Array und ist daher verfeinerter als ein Pfad, der durch das Verbinden gerader Linien entsteht. Die folgende Abbildung zeigt zwei Pfade, einen, der durch Verbinden gerader Linien erstellt wird, und einer, der als Kardinalspline erstellt wurde.

Abbildung, die die gleichen fünf Punkte zweimal zeigt: einmal durch eine Kardinalspline verbunden, der andere durch Liniensegmente

Unabhängige Pfadobjekte

In GDI gehört ein Pfad zu einem Gerätekontext, und der Pfad wird beim Zeichnen zerstört. Mit GDI+ wird das Zeichnen von einem Graphics-Objekt ausgeführt, und Sie können mehrere GraphicsPath-Objekte erstellen und verwalten, die vom Graphics-Objekt getrennt sind. Ein GraphicsPath-Objekt wird durch die Zeichnungsaktion nicht zerstört, sodass Sie dasselbe GraphicsPath-Objekt verwenden können, um einen Pfad mehrmals zu zeichnen.

Transformationen und das Matrix-Objekt

GDI+ stellt das Matrix-Objekt bereit, ein leistungsstarkes Tool, das Transformationen (Drehungen, Übersetzungen usw.) einfach und flexibel macht. Ein Matrixobjekt funktioniert in Verbindung mit den objekten, die transformiert werden. Ein GraphicsPath-Objekt verfügt beispielsweise über eine GraphicsPath::Transform-Methode , die die Adresse eines Matrix-Objekts als Argument empfängt. Eine einzelne 3×3-Matrix kann eine Transformation oder eine Sequenz von Transformationen speichern. Die folgende Abbildung zeigt einen Pfad vor und nach einer Sequenz von zwei Transformationen (zuerst skalieren und dann rotieren).

Abbildung, die den Umriss einer Form zeigt, dann dieselbe Kontur, aber schmaler und gedreht

Skalierbare Regionen

GDI+ baut GDI mit seiner Unterstützung für Regionen stark aus. In GDI werden Regionen in Gerätekoordinaten gespeichert, und die einzige Transformation, die auf eine Region angewendet werden kann, ist eine Übersetzung. GDI+ speichert Regionen in Weltkoordinaten und ermöglicht es einer Region, jede Transformation (z. B. Skalierung) zu durchlaufen, die in einer Transformationsmatrix gespeichert werden kann. Die folgende Abbildung zeigt einen Bereich vor und nach einer Sequenz von drei Transformationen: Skalieren, Drehen und Übersetzen.

Abbildung einer Form, die auf Koordinatenachsen zentriert ist, dann dieselbe Form, aber größer, gedreht und nach rechts übersetzt

Alpha-Blending

Beachten Sie, dass in der vorherigen Abbildung der nicht übersetzte Bereich (mit rot gefüllt) durch den transformierten Bereich (gefüllt mit einem Schraffurpinsel) angezeigt wird. Dies wird durch das Alpha-Blending ermöglicht, das von GDI+ unterstützt wird. Bei der Alphamischung können Sie die Transparenz einer Füllfarbe angeben. Eine transparente Farbe wird mit der Hintergrundfarbe gemischt – je transparenter Sie eine Füllfarbe erstellen, desto mehr zeigt sich der Hintergrund. Die folgende Abbildung zeigt vier Auslassungspunkte, die mit derselben Farbe (rot) bei unterschiedlichen Transparenzstufen gefüllt sind.

Abbildung, die vier Auslassungspunkte mit unterschiedlicher Transparenz zeigt, die ein halbtransparentes Rechteck überlappen

Unterstützung für mehrere Bildformate

GDI+ stellt die Klassen Image, Bitmap und Metafile bereit, mit denen Sie Bilder in einer Vielzahl von Formaten laden, speichern und bearbeiten können. Die folgenden Formate werden unterstützt:

  • BMP
  • GIF (Graphics Interchange Format)
  • JPEG
  • EXIF
  • PNG
  • TIFF
  • ICON
  • WMF
  • EMF