Я хотел бы нарисовать сглаженный текст на прозрачном растровом изображении и нарисовать сглаживание как пиксели с альфа-смешением. Таким образом, я могу нарисовать растровое изображение на любой цветной поверхности (или изображении, если на то пошло), и сглаживание по-прежнему выглядит нормально.
Вот упрощенный образец, показывающий проблему:
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));
}
И вот результат:
Конечная цель этого - использовать UpdateLayeredWindow для рисования моего прозрачного окна с альфа-смешиванием. Я создаю приложение, подобное Conky, и я хотел бы иметь возможность использовать ClearType для визуализации текста (это, конечно, легко без сглаживания).
В настоящее время я беру экран за формой, рисую его, а затем рисую свой текст. Выглядит неплохо, но требует обновления и медленно отрисовывается. Также приветствуются любые другие идеи по рисованию текста на рабочем столе.