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.