Suavizado de contorno con texto
Windows GDI+ proporciona varios niveles de calidad para dibujar texto. Normalmente, la representación de mayor calidad tarda más en procesarse que la representación de menor calidad.
El nivel de calidad es una propiedad de la clase Graphics . Para establecer el nivel de calidad, llame al método Graphics::SetTextRenderingHint de un objeto Graphics . El método Graphics::SetTextRenderingHint recibe uno de los elementos de la enumeración TextRenderingHint , que se declara en Gdiplusenums.h.
GDI+ proporciona suavizado de contorno tradicional y un nuevo tipo de suavizado de contorno basado en la tecnología de pantalla Microsoft ClearType solo disponible en Windows XP y Windows Server 2003 y versiones posteriores de Windows. El suavizado ClearType mejora la legibilidad en monitores LCD de color que tienen una interfaz digital, como los monitores en portátiles y pantallas de escritorio planas de alta calidad. La legibilidad en las pantallas de CRT también se ha mejorado un poco.
ClearType depende de la orientación y el orden de las franjas LCD. Actualmente, ClearType solo se implementa para franjas verticales ordenadas RGB. Esto puede ser un problema si usa un pc de tableta, donde la pantalla se puede orientar en cualquier dirección, o si usa una pantalla que se puede cambiar de horizontal a vertical.
En el ejemplo siguiente se dibuja texto con dos configuraciones de calidad 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);
En la ilustración siguiente se muestra la salida del código anterior.