在透明像素上使用DrawString时出现了糟糕的文本渲染。

9 浏览
0 Comments

在透明像素上使用DrawString时出现了糟糕的文本渲染。

当将文本渲染成位图时,我发现在非不透明alpha区域上渲染的文本看起来非常糟糕。随着底层像素变得更加透明,问题会逐渐加剧。如果我不得不猜测的话,当底层像素透明时,文本渲染器会将任何反锯齿的“灰色”像素绘制为纯黑色。

以下是一些屏幕截图:

在透明像素上绘制的文本:

alt text

在半透明像素上绘制的文本:

alt text

在不透明像素上绘制的文本:

alt text

以下是用于渲染文本的代码:

g.SmoothingMode = SmoothingMode.HighQuality;
g.DrawString("按空格键", Font, Brushes.Black, textLeft, textTop);

0