Anti-aliasing con testo
Windows GDI+ offre vari livelli di qualità per il disegno del testo. In genere, il rendering di qualità superiore richiede più tempo di elaborazione rispetto al rendering di qualità inferiore.
Il livello di qualità è una proprietà della classe Graphics . Per impostare il livello di qualità, chiamare il metodo Graphics::SetTextRenderingHint di un oggetto Graphics . Il metodo Graphics::SetTextRenderingHint riceve uno degli elementi dell'enumerazione TextRenderingHint , dichiarata in Gdiplusenums.h.
GDI+ offre un antialiasing tradizionale e un nuovo tipo di antialiasing basato sulla tecnologia di visualizzazione Microsoft ClearType disponibile solo in Windows XP e Windows Server 2003 e versioni successive di Windows. ClearType smoothing migliora la leggibilità nei monitor LCD a colori con un'interfaccia digitale, ad esempio i monitor nei portatili e negli schermi desktop flat di alta qualità. Anche la leggibilità nelle schermate CRT è migliorata.
ClearType dipende dall'orientamento e dall'ordinamento delle strisce LCD. Attualmente ClearType è implementato solo per le strisce verticali ordinate RGB. Questo potrebbe essere un problema se si usa un PC tablet, dove lo schermo può essere orientato in qualsiasi direzione, o se si usa uno schermo che può essere trasformato da orizzontale a verticale.
L'esempio seguente disegna testo con due impostazioni di qualità diverse:
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);
La figura seguente mostra l'output del codice precedente.