Suavização com Texto

O Windows GDI+ fornece vários níveis de qualidade para desenhar texto. Normalmente, a renderização de qualidade mais alta leva mais tempo de processamento do que a renderização de qualidade mais baixa.

O nível de qualidade é uma propriedade da classe Graphics . Para definir o nível de qualidade, chame o método Graphics::SetTextRenderingHint de um objeto Graphics . O método Graphics::SetTextRenderingHint recebe um dos elementos da enumeração TextRenderingHint , que é declarada em Gdiplusenums.h.

O GDI+ fornece suavização tradicional e um novo tipo de suavização com base na tecnologia de exibição Microsoft ClearType disponível apenas no Windows XP e windows Server 2003 e versões posteriores do Windows. A suavização ClearType melhora a legibilidade em monitores LCD de cor que têm uma interface digital, como os monitores em laptops e telas de área de trabalho plana de alta qualidade. A legibilidade em telas CRT também é um pouco melhorada.

ClearType depende da orientação e ordenação das faixas LCD. Atualmente, ClearType é implementado apenas para faixas verticais que são ordenadas RGB. Isso pode ser uma preocupação se você estiver usando um tablet pc, em que a tela pode ser orientada em qualquer direção ou se você estiver usando uma tela que pode ser transformada de paisagem para retrato.

O exemplo a seguir desenha texto com duas configurações de qualidade diferentes:

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

A ilustração a seguir mostra a saída do código anterior.

captura de tela de uma cadeia de caracteres cujos caracteres têm bordas irregulares contrastadas com uma com bordas suaves