我想在透明位图上绘制抗锯齿文本,并将抗锯齿绘制为 alpha 混合像素。这样,我可以将位图绘制到任何颜色表面(或图像,就此而言),并且抗锯齿看起来仍然很好。
这是一个显示问题的简化示例:
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 来绘制我的透明 alpha 混合窗口。我正在创建一个类似 Conky 的应用程序,我希望能够对文本使用 ClearType 渲染(当然,这很容易,无需抗锯齿)。
目前,我抓住表单后面的屏幕,绘制它,然后绘制我的文本。它看起来不错,但必须更新并且绘制速度很慢。任何其他在桌面上完成绘图文本的想法也将受到欢迎。