Me gustaría dibujar texto antialias en un mapa de bits transparente y tener el antialiasing dibujado como píxeles combinados alfa. De esta manera, puedo dibujar el mapa de bits en cualquier superficie de color (o una imagen, para el caso) y el antialiasing aún se ve bien.Texto antialias en el mapa de bits transparente
Este es un ejemplo simplificado que muestra el problema:
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Bitmap bitmap = new Bitmap(this.Width, this.Height);
Graphics g = Graphics.FromImage(bitmap);
g.Clear(Color.Empty);
g.DrawString("hello world", new Font(this.Font.FontFamily, 24), Brushes.Blue, new Point(50, 50));
e.Graphics.DrawImage(bitmap, new Point(0, 0));
}
Y aquí está el resultado:
alt text http://img194.imageshack.us/img194/9065/captureotd.png
El objetivo final de esta es el uso de UpdateLayeredWindow dibujar mi alfa transparente mezclado ventana. Estoy creando una aplicación similar a Conky, y me gustaría poder usar el renderizado ClearType para texto (esto es fácil sin antialiasing, por supuesto).
Actualmente, tomo la pantalla detrás del formulario, dibujo eso y luego dibujo mi texto. Se ve bien, pero tiene que actualizarse y es lento para dibujar. Cualquier otra idea para lograr el texto de dibujo en el escritorio también sería bienvenida.
Esto funcionó bien, ¡gracias! No es tan bonito como ClearType, pero incluso las fuentes diseñadas para ClearType (por ejemplo, Consolas) aún se ven bien. – iano
Curiosamente, para mí 'AntiAliasGridFit' produce texto con cero anti-aliasing. 'AntiAlias', sin embargo, funciona. –
'AntiAliasGridFit' podría no hacer anti-aliasing si el tamaño de fuente es demasiado pequeño. En tales tamaños de fuente, 'AntiAlias' da un resultado feo de todos modos. –