graphics.DrawString() 未正确呈现

graphics.DrawString() not properly rendering

我正在尝试通过将字符串绘制到 Texture2D 来在 Monogame 的屏幕上呈现一些文本

这是我目前的输出

这就是我想要的样子

这是代码片段

Bitmap b = new Bitmap(width, height, PixelFormat.Format32bppArgb);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(b);

g.Clear(System.Drawing.Color.Transparent);

//Quality settings
g.SmoothingMode      = SmoothingMode.HighQuality;
g.InterpolationMode  = InterpolationMode.HighQualityBicubic;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;

Brush brush = new SolidBrush(Color.White);

g.DrawString(text, f, brush, 0, 0);

在阅读了其他一些关于同一问题的帖子后,我尝试用白色清除,但没有任何改变,然后我尝试添加一堆图形设置,比如 this post said to and that only给了我

它周围有一堆不需要的黑点,可以说比第一个结果要好,但仍然不是我需要的清晰文本,用单一颜色清除它是行不通的,因为这个文本可能在图片或移动的东西

编辑: 我用 TextRenderingHint.SingleBitPerPixelGridFit

稍微好一点

仍然不是我想要的,但至少更接近

我终于能够在 monogame discord 中的一些人的帮助下修复它,方法是在绘制文本的 sprite 批次中将 BlendState 设置为 Nonpremultiplied