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.
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.
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.
Die folgende Abbildung zeigt die gleiche Ellipse in ihrer tatsächlichen Größe, einmal ohne und einmal mit Antialiasing.
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