Antialiasing bei Linien und Kurven

Wenn Sie GDI+ zum Zeichnen einer Linie verwenden, brauchen Sie nur den Anfangs- und Endpunkt der Linie anzugeben, ohne weitere Informationen zu den einzelnen Pixel in der Linie bereitstellen zu müssen. Welche Pixel zum Anzeigen der Linie auf einem bestimmten Anzeigegerät erforderlich sind, ermittelt GDI+ zusammen mit der Bildschirmtreibersoftware.

Aliasing

Betrachten Sie die gerade rote Linie vom Punkt (4, 2) zum Punkt (16, 10). Das Koordinatensystem hat seinen Ursprung in der linken oberen Ecke, die Maßeinheit ist Pixel. Außerdem zeigt die x‑Achse nach rechts und die y‑Achse nach unten. Die folgende Abbildung zeigt eine vergrößerte Ansicht der roten Linie auf einem mehrfarbigen Hintergrund.

Linie ohne Antialiasing

Die roten Pixel, mit denen die Linie gerendert wird, sind nicht transparent. Die Linie enthält keine teilweise transparenten Pixel. Durch diese Art von Linienrendering sieht die Linie gezackt aus, als ob sie Stufen enthielte. Diese Technik der Darstellung einer Linie mit Stufen wird als Aliasing bezeichnet. Die "Treppe" ist ein Alias für die theoretische Linie.

Antialiasing

Bei einer ausgereifteren Technik zum Rendern einer Linie werden teilweise transparente Pixel zusammen mit deckenden Pixel verwendet. Für die Pixel wird reines Rot oder eine Mischung aus Rot und der Hintergrundfarbe festgelegt, je nachdem, wie nahe sie an der Linie liegen. Diese Art der Darstellung wird als Antialiasing bezeichnet und ergibt eine Linie, die vom menschlichen Auge als glatter wahrgenommen wird. Die folgende Abbildung zeigt, wie bestimmte Pixel mit dem Hintergrund vermischt werden, um eine Linie mit Antialiasing zu erstellen.

Antialiasing bei einer Linie

Das auch als Glättung bezeichnete Antialiasing kann außerdem auf Kurven angewendet werden. Die folgende Abbildung zeigt eine vergrößerte Ansicht einer geglätteten Ellipse.

Antialiasing bei Kurven

Die folgende Abbildung zeigt die gleiche Ellipse in ihrer tatsächlichen Größe, einmal ohne und einmal mit Antialiasing.

Antialiasingbeispiel

Um Linien und Kurven mit Antialiasing zu zeichnen, erstellen Sie eine Instanz der Graphics-Klasse und legen für ihre SmoothingMode-Eigenschaft den Wert AntiAlias oder HighQuality fest. Rufen Sie dann eine der Zeichenmethoden derselben Graphics-Klasse auf.

        myGraphics.SmoothingMode = SmoothingMode.AntiAlias
        myGraphics.DrawLine(myPen, 0, 0, 12, 8)

myGraphics.SmoothingMode = SmoothingMode.AntiAlias;
myGraphics.DrawLine(myPen, 0, 0, 12, 8);

Siehe auch

Aufgaben

Gewusst wie: Verwenden der Bildkantenglättung mit Text

Referenz

System.Drawing.Drawing2D.SmoothingMode

Weitere Ressourcen

Linien, Kurven und Formen