我想在透明位图上绘制抗锯齿文本,并将抗锯齿绘制为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));
}
Run Code Online (Sandbox Code Playgroud)
这是结果:
alt text http://img194.imageshack.us/img194/9065/captureotd.png
最终目标是使用UpdateLayeredWindow绘制透明的alpha混合窗口.我正在创建一个类似Conky的应用程序,我希望能够使用ClearType渲染文本(当然,这很容易,没有抗锯齿).
目前,我抓住表单后面的屏幕,绘制它,然后绘制我的文本.它看起来不错,但必须更新并且绘制缓慢.在桌面上完成绘图文本的任何其他想法也将受到欢迎.
我想添加用户捕获我的应用程序中的当前屏幕并通过电子邮件发送它的能力.我有一个非技术性的用户群,所以我需要尽可能简单.我打算让他们点击一个名为Help Me的菜单项!然后它将捕获当前的应用程序屏幕,希望作为jpg或png,然后打开Outlook并将图像添加为附件.
我正在阅读这篇关于Code Project 的ScreenCapture帖子,但它有点老了,并不是我想要的所以我想我会检查是否有更好的方法来做到这一点.
我该如何开始这个?是否有图书馆或内置功能足够?
谢谢!