Antialiasing mit Text
Windows GDI+ bietet verschiedene Qualitätsstufen für das Zeichnen von Text. In der Regel dauert das Rendern in höherer Qualität länger als das Rendern in niedriger Qualität.
Die Qualitätsstufe ist eine Eigenschaft der Graphics-Klasse . Um die Qualitätsebene festzulegen, rufen Sie die Graphics::SetTextRenderingHint-Methode eines Graphics-Objekts auf. Die Graphics::SetTextRenderingHint-Methode empfängt eines der Elemente der TextRenderingHint-Enumeration , die in Gdiplusenums.h deklariert ist.
GDI+ bietet herkömmliches Antialiasing und eine neue Art von Antialiasing basierend auf der Microsoft ClearType-Anzeigetechnologie, die nur unter Windows XP und Windows Server 2003 und höheren Versionen von Windows verfügbar ist. ClearType Glättung verbessert die Lesbarkeit von LCD-Farbmonitoren, die über eine digitale Schnittstelle verfügen, z. B. die Monitore in Laptops und hochwertige flache Desktop-Displays. Die Lesbarkeit auf CRT-Bildschirmen wurde ebenfalls etwas verbessert.
ClearType hängt von der Ausrichtung und Reihenfolge der LCD-Streifen ab. Derzeit ist ClearType nur für vertikale Streifen implementiert, die rgb sortiert sind. Dies kann ein Problem sein, wenn Sie einen Tablet-PC verwenden, auf dem die Anzeige in eine beliebige Richtung ausgerichtet werden kann, oder wenn Sie einen Bildschirm verwenden, der vom Querformat zum Hochformat gedreht werden kann.
Das folgende Beispiel zeichnet Text mit zwei verschiedenen Qualitätseinstellungen:
FontFamily fontFamily(L"Times New Roman");
Font font(&fontFamily, 32, FontStyleRegular, UnitPixel);
SolidBrush solidBrush(Color(255, 0, 0, 255));
WCHAR string1[] = L"SingleBitPerPixel";
WCHAR string2[] = L"AntiAlias";
graphics.SetTextRenderingHint(TextRenderingHintSingleBitPerPixel);
graphics.DrawString(string1, -1, &font, PointF(10.0f, 10.0f), &solidBrush);
graphics.SetTextRenderingHint(TextRenderingHintAntiAlias);
graphics.DrawString(string2, -1, &font, PointF(10.0f, 60.0f), &solidBrush);
Die folgende Abbildung zeigt die Ausgabe des vorangehenden Codes.