Compartir a través de


Suavizado de contorno de ClearType

El suavizado antialiasing de Microsoft ClearType es un método de suavizado que mejora la resolución de la pantalla de fuentes sobre el suavizado tradicional. Mejora considerablemente la legibilidad en monitores LCD de color con una interfaz digital, como las de portátiles y pantallas de escritorio planas de alta calidad. La legibilidad en las pantallas de CRT también se ha mejorado un poco.

Sin embargo, ClearType depende de la orientación y el orden de las franjas LCD. Actualmente, ClearType solo se implementa para LCD con franjas verticales ordenadas RGB. En concreto, esto afecta a los equipos de tableta, donde la pantalla se puede orientar en cualquier dirección y aquellas pantallas que se pueden convertir de horizontal a vertical.

Se permite el antialiasing ClearType:

  • Para el color de 16, 24 y 32 bits (deshabilitado para 256 colores o menos)
  • Para DC de pantalla y dc de memoria (no para dc de impresora)
  • Para las fuentes TrueType y las fuentes OpenType con esquemas TrueType

ClearType antialiasing está deshabilitado:

  • En el cliente de terminal Server
  • Para las fuentes de mapa de bits, las fuentes vectoriales, las fuentes del dispositivo, las fuentes de tipo 1 o las fuentes OpenType postscript sin esquemas TrueType
  • Si la fuente tiene mapas de bits incrustados optimizados, solo para los tamaños de fuente que contienen los mapas de bits incrustados.

Para activar el suavizado ClearType, llame a SystemParametersInfo una vez para activar el suavizado de fuentes y, a continuación, una segunda vez para establecer el tipo de suavizado en FE_FONTSMOOTHINGCLEARTYPE, como se muestra en el ejemplo de código siguiente:

SystemParametersInfo(SPI_SETFONTSMOOTHING,
                     TRUE,
                     0,
                     SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
SystemParametersInfo(SPI_SETFONTSMOOTHINGTYPE,
                     0,
                     (PVOID)FE_FONTSMOOTHINGCLEARTYPE,
                     SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); 

Puede ajustar la apariencia del texto cambiando el valor de contraste usado en el algoritmo ClearType. El valor predeterminado es 1400, pero puede ser cualquier valor de 1000 a 2200. Según el dispositivo de pantalla y la sensibilidad del usuario a los colores, un valor de contraste superior o inferior puede mejorar la legibilidad. Para cambiar el contraste, llame a SystemParametersInfo con SPI_SETFONTSMOOTHINGCONTRAST. El código siguiente establece el valor de contraste en 1600.

SystemParametersInfo(SPI_SETFONTSMOOTHINGCONTRAST,
                     0,
                     (PVOID)1600,
                     SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); 

Debe tener en cuenta los siguientes detalles para la compatibilidad de aplicaciones:

  • La representación de texto con ClearType es ligeramente más lenta que con suavizado estándar.
  • Las aplicaciones no deben usar XOR para mostrar el texto seleccionado. Las aplicaciones deben establecer el color de fondo y volver a reproducir el texto seleccionado.
  • Las aplicaciones no deben pintar el mismo texto sobre sí mismo en modo transparente. Si esto ocurre, los píxeles perimetrales antialiased se combinarán con sí mismos en lugar de con el color de fondo. Esto da como resultado bordes oscuros y coloridos.
  • Las aplicaciones no deben pintar texto pintando los caracteres individualmente cuando están en modo opaco, ya que el borde de un carácter puede ser recortado por el siguiente carácter. Esto ocurre porque un carácter suavizado con ClearType puede tener un ancho A o C negativo donde el carácter normal tiene un ancho A o C positivo. Solo se garantiza que el ancho B del carácter sea el mismo. Del mismo modo, las aplicaciones deben tener cuidado si el texto suavizado está junto al texto sin fumadores.
  • Si una aplicación representa texto y, a continuación, manipula el mapa de bits, el suavizado de fuentes debe desactivarse estableciendo el miembro lfQuality de la estructura LOGFONT en NONANTIALIASED_QUALITY. Por ejemplo, un juego puede agregar un efecto de sombra de mapa de bits o el texto representado en un mapa de bits se puede escalar para generar una vista digital.
  • Si el usuario se está ejecutando en modo vertical (es decir, el seccionamiento de monitores es horizontal), el suavizado ClearType debe deshabilitarse.

El parámetro fdwQuality de CreateFont y el miembro lfQuality de LOGFONT aceptan la marca CLEARTYPE_QUALITY. La rasterización de fuentes creadas con esta marca usará el rasterizador ClearType. Esta marca no tiene ningún efecto en las versiones anteriores del sistema operativo.