Alisado con texto
GDI+ proporciona varios niveles de calidad para dibujar texto. Normalmente, una mayor calidad de dibujo requiere más tiempo de procesamiento que una calidad inferior. Para establecer el nivel de calidad del texto, establezca la propiedad TextRenderingHint de un objeto Graphics en uno de los elementos de la enumeración TextRenderingHint.
GDI+ proporciona alisado tradicional y un nuevo tivo de alisado basado en la tecnología de presentación de Microsoft® ClearType®. Disponible sólo en Microsoft® Windows® XP, el suavizado de ClearType mejora la legibilidad en monitores LCD en color con una interfaz digital, como los monitores de los equipos portátiles y los de los equipos de escritorio de alta calidad. También mejora en cierta medida la legibilidad de las pantallas CRT.
ClearType depende de la orientación y del orden de las franjas de los monitores LCD. En la actualidad, ClearType sólo se implementa para franjas verticales con el orden RGB. Esto puede ser un problema si se utiliza un equipo de bolsillo, donde el monitor se puede orientar en cualquier dirección, o si se utiliza una pantalla cuya orientación puede cambiar de horizontal a vertical.
En el ejemplo siguiente se dibuja texto con dos configuraciones de calidad distintas:
Dim fontFamily As New FontFamily("Times New Roman")
Dim font As New Font( _
fontFamily, _
32, _
FontStyle.Regular, _
GraphicsUnit.Pixel)
Dim solidBrush As New SolidBrush(Color.FromArgb(255, 0, 0, 255))
Dim string1 As String = "SingleBitPerPixel"
Dim string2 As String = "AntiAlias"
e.Graphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixel
e.Graphics.DrawString(string1, font, solidBrush, New PointF(10, 10))
e.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias
e.Graphics.DrawString(string2, font, solidBrush, New PointF(10, 60))
[C#]
FontFamily fontFamily = new FontFamily("Times New Roman");
Font font = new Font(
fontFamily,
32,
FontStyle.Regular,
GraphicsUnit.Pixel);
SolidBrush solidBrush = new SolidBrush(Color.FromArgb(255, 0, 0, 255));
string string1 = "SingleBitPerPixel";
string string2 = "AntiAlias";
e.Graphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixel;
e.Graphics.DrawString(string1, font, solidBrush, new PointF(10, 10));
e.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias;
e.Graphics.DrawString(string2, font, solidBrush, new PointF(10, 60));
En la siguiente ilustración se muestra el resultado del código anterior.