GDI +文本有黑色边缘

时间:2011-06-07 01:02:37

标签: c# .net image gdi+

我正在清除带有透明色(120 alpha)的图像,然后用渐变在其上绘制一个字符串,然后将该图像绘制到一个更大的图像上,但文本边缘偏黑而不是很好应该是顺畅的。如果使用255 alpha绘制背景,文本看起来很好。

120 Alpha:Image

255 Alpha:Image

正如您所看到的,在背景完全不透明的情况下,文本更容易阅读

注意:绿点是我的光标

编辑:gfx.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;删除黑色边缘,但模糊,我会尝试其他一些图形设置组合,看看情况如何。

编辑:gfx.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;看起来好多了,虽然Arial字体中的A看起来有点时髦

1 个答案:

答案 0 :(得分:0)

这是正常行为。您必须更改您的绘图顺序才能使其正确。

由于您将文本绘制到半透明表面上,因此其抗锯齿像素也将是半透明的,但在文本颜色和第一个图像的背景之间也是如此。

现在,如果您将结果绘制到另一个图像上,您将拥有统一的透明像素,其中没有文本,没有文本的透明度以及抗锯齿像素的变化透明度颜色。

请注意,这些颜色会有各种颜色,因为抗锯齿试图传播颜色差异以及亮度差异。

在非透明表面上书写或将书写延迟到最后。 (或者关闭所有抗锯齿功能。但这并不好。)