Vorrei disegnare un testo antialias in una bitmap trasparente e avere l'antialiasing disegnato come pixel alfa miscelati. In questo modo, posso disegnare la bitmap su qualsiasi superficie di colore (o un'immagine, per quella materia) e l'antialiasing sembra ancora a posto.Testo con antialiasing sulla bitmap trasparente
Ecco un esempio semplificato che mostra il 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));
}
Ed ecco il risultato:
alt text http://img194.imageshack.us/img194/9065/captureotd.png
L'obiettivo finale di questo è quello di utilizzare UpdateLayeredWindow per disegnare la mia alfa trasparente mescolato finestra. Sto creando un'applicazione simile a Conky e mi piacerebbe essere in grado di usare il rendering ClearType per il testo (questo è facile senza antialiasing, ovviamente).
Attualmente, afferro lo schermo dietro il modulo, lo disegna e quindi disegno il mio testo. Sembra buono, ma deve essere aggiornato ed è lento a disegnare. Sarebbe inoltre gradita qualsiasi altra idea per realizzare un disegno sul desktop.
Questo ha funzionato bene, grazie! Non è abbastanza bello come ClearType, ma anche i font progettati per ClearType (ex Consolas) sembrano ancora buoni. – iano
Stranamente, per me 'AntiAliasGridFit' produce testo con anti-aliasing zero. 'AntiAlias', tuttavia, funziona. –
'AntiAliasGridFit' potrebbe non eseguire l'anti-aliasing se la dimensione del carattere è troppo piccola. A tali dimensioni dei caratteri, 'AntiAlias' fornisce comunque un brutto risultato. –