Partager via


Anticrénelage avec du texte

Windows GDI+ fournit différents niveaux de qualité pour le texte de dessin. En règle générale, le rendu de qualité supérieure prend plus de temps de traitement que le rendu de qualité inférieure.

Le niveau de qualité est une propriété de la classe Graphics . Pour définir le niveau de qualité, appelez la méthode Graphics::SetTextRenderingHint d’un objet Graphics . La méthode Graphics::SetTextRenderingHint reçoit l’un des éléments de l’énumération TextRenderingHint , qui est déclarée dans Gdiplusenums.h.

GDI+ fournit un anticrénelage traditionnel et un nouveau type d’anticrénelage basé sur la technologie d’affichage Microsoft ClearType disponible uniquement sur Windows XP et Windows Server 2003 et versions ultérieures de Windows. Le lissage ClearType améliore la lisibilité sur les écrans LCD couleur dotés d’une interface numérique, comme les écrans des ordinateurs portables et les écrans de bureau plats de haute qualité. La lisibilité sur les écrans CRT est également quelque peu améliorée.

ClearType dépend de l’orientation et de l’ordre des bandes LCD. Actuellement, ClearType est implémenté uniquement pour les bandes verticales ordonnées RVB. Cela peut être un problème si vous utilisez une tablette PC, où l’affichage peut être orienté dans n’importe quelle direction, ou si vous utilisez un écran qui peut être transformé du paysage au portrait.

L’exemple suivant dessine du texte avec deux paramètres de qualité différents :

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);
            

L’illustration suivante montre la sortie du code précédent.

capture d’écran d’une chaîne dont les caractères ont des bords déchiquetés contrastés avec un avec des bords lisses