[英]GDI+ text has a black edge
我正在清除具有透明颜色(120 alpha)的图像,然后使用渐变在其上绘制一个字符串,然后将该图像绘制到更大的图像上,但文本的边缘是黑色的,而不是像它一样漂亮和平滑应该。 如果使用 255 alpha 绘制背景,则文本看起来很好。
120阿尔法:图像
255阿尔法:图像
如您所见,在背景完全不透明的情况下,文本更易于阅读
注意:绿点是我的 cursor
编辑: gfx.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
去除了黑边,但它很模糊,我会尝试一些其他的图形设置组合,看看效果如何。
编辑: gfx.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
看起来好多了,虽然 Arial 字体中的 A 看起来有点时髦
这是正常行为。 您必须更改绘图顺序才能使其正确。
由于您将文本绘制到半透明表面上,因此其抗锯齿像素也将是半透明的,但介于文本颜色和第一张图像的背景之间。
现在,如果您将结果绘制到另一个图像上,您将在没有文本的地方有统一的透明像素,在有文本的地方没有透明度,并且透明度不同,抗锯齿像素为 colors。
请注意,这些将具有各种 colors,因为抗锯齿会尝试传播颜色差异以及亮度差异。
要么写在不透明的表面上,要么延迟写到最后。 (或者关闭所有抗锯齿。但这并不好。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.