Pregunta

El uso de GDI + para dibujar texto sobre vidrio:

graphics.DrawString(s, Length(s), font, MakePointF(x, y), brush);

Se dará cuenta de que el ClearType activado texto se inspira muy mal en el vidrio:

texto alternativo ??

Pero con vidrio desactivado el texto, por supuesto, dibujar bien:

texto alternativo ??

A modo de comparación aquí es Anti-alias de suavizado de fuentes

texto alternativo ??

Y aquí es sin suavizado de fuentes

texto alternativo ??

Nota: . Sin suavizado de fuentes se ve mejor de lo que realmente hace porque Stackoverflow cambia el tamaño de las imágenes en el monitor

¿Cómo dibujar texto ClearType en el vidrio?

Notas

  • Win32 nativa
  • No .NET ( es decir. nativo)
  • No Winforms ( es decir. nativo)
  • GDI + ( es decir. nativo)

Lo que Marcos está sugiriendo es que no se puede cumplir con las preferencias del usuario para el renderizado de texto (es decir, "SystemDefault". ClearType no funciona en el vidrio, y no se puede utilizar.

En otras palabras, si estás reproduciendo en el vidrio debe invalidar la representación de texto con:

graphics.SetTextRenderingHint(TextRenderingHintAntiAliasGridFit);

De lo contrario, debe salir de la TextRenderingHint en él es TextRenderingHintSystemDefault por defecto.

Ver también

¿Fue útil?

Solución

El problema es inherente a la forma en que se realiza el dibujo. Todo el texto se está elaborando sobre un fondo negro, a continuación, mezclados en un fondo de cristal; el suavizado de fuentes semi-transparente se combina con negro para hacer casi negro.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top