Antialiasing mit Text
Windows GDI+ bietet verschiedene Qualitätsstufen für das Zeichnen von Text. In der Regel dauert das Rendern mit höherer Qualität mehr Verarbeitungszeit als rendern mit geringerer Qualität.
Die Qualitätsstufe ist eine Eigenschaft der Graphics-Klasse. Um die Qualitätsstufe 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 auf Windows XP und Windows Server 2003 und höher von Windows verfügbar ist. Die ClearType-Glättung verbessert die Lesbarkeit von COLOR-Monitoren, die über eine digitale Schnittstelle verfügen, z. B. die Monitore in Laptops und hochwertige flache Desktopanzeigen. Die Lesbarkeit auf CRT-Bildschirmen wurde ebenfalls etwas verbessert.
ClearType ist abhängig von der Ausrichtung und Reihenfolge der STRIP-Stripes. Derzeit ist ClearType nur für vertikale Stripes implementiert, die rgb geordnet sind. Dies kann ein Problem sein, wenn Sie einen Tablet-PC verwenden, auf dem die Anzeige in beliebiger Richtung ausgerichtet werden kann, oder wenn Sie einen Bildschirm verwenden, der von querformatiert in hochformatiert werden kann.
Im folgenden Beispiel wird Text mit zwei verschiedenen Qualitätseinstellungen zeichnet:
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.
