将文本渲染到位图时,我发现在具有非不透明 Alpha 的区域顶部渲染时,文本看起来非常糟糕。随着底层像素变得更加透明,问题变得越来越严重。如果我不得不猜测,我会说当底层像素是透明的时,文本渲染器将任何抗锯齿“灰色”像素绘制为纯黑色。
以下是一些屏幕截图:
在透明像素上绘制的文本:
在半透明像素上绘制的文本:
在不透明像素上绘制的文本:
这是用于呈现文本的代码:
g.SmoothingMode = SmoothingMode.HighQuality;
g.DrawString("Press the spacebar", Font, Brushes.Black, textLeft, textTop);
我用来解决这个问题的选项是:
Graphics graphics = new Graphics();
graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit;
TextRenderingHint 中还有一些其他有用的选项
希望能帮助到你
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)