我怎样才能清楚地使用DrawString?

我需要使用DrawString方法使用Graphics类绘制一个字符串。 但是图像有一些黑色像素,而不是确切的颜色。 我怎样才能清楚地画出来?

样本字符串

public Image Ciz() { Color renk = Color.FromArgb(255, 133, 199); Bitmap result = new Bitmap(KutuBoyutu.Genislik, KutuBoyutu.Yukseklik); result.SetResolution(100, 100); Graphics g = Graphics.FromImage(result); g.SmoothingMode = SmoothingMode.HighQuality; Brush drawBrush = new SolidBrush(renk); StringFormat stringFormat = new StringFormat(); stringFormat.Alignment = StringAlignment.Center; stringFormat.LineAlignment = StringAlignment.Center; Rectangle rect1 = new Rectangle(0, 0, result.Width, result.Height); Font font = new Font("Arial", 15f, FontStyle.Bold, GraphicsUnit.Pixel); g.DrawString(Yazi, font, drawBrush, rect1, stringFormat); drawBrush.Dispose(); return result; } 

 g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; 

你的代码。

TextRenderingHint.AntiAliasGridFit也可以。

绘图文本需要明确定义的背景,以便抗锯齿效果可以正常工作。 你没有,你忘了初始化位图。 其像素为默认值,黑色为alpha。

因此,文本渲染器将尝试将字母混合为黑色背景。 你看,那些几乎黑色的像素现在变得非常明显,白色背景。 如果您在黑色背景上绘制位图,它只会看起来很好。 固定:

 using (Graphics g = Graphics.FromImage(result)) { g.Clear(Color.White); // etc... } 

如果无法修复背景颜色,则需要放弃抗锯齿。 将TextRenderingHint设置为SingleBitPerPixelGridFit。 你不会喜欢它:)