gpt4 book ai didi

c# - 使用 TextRenderer 将文本绘制到位图

转载 作者:太空狗 更新时间:2023-10-29 22:32:42 25 4
gpt4 key购买 nike

我正在尝试使用 TextRenderer(因为这有利于使用 Graphics.DrawString)将一些文本绘制到 Bitmap,但是它正在产生一些非常不良的影响。

示例代码

using (Bitmap buffer = new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb))
{
using (Graphics graphics = Graphics.FromImage(buffer))
{
// Produces the result below
graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
// Produces clean text, but I'd really like ClearType!
graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
TextRenderer.DrawText(graphics, "Hello World", this.Font, this.ClientRectangle, Color.Black);
}
e.Graphics.DrawImageUnscaled(buffer, this.ClientRectangle);
}

结果

enter image description here

我不确定如何解决这个问题...求助!

我不想使用 Graphics.DrawString,因为我想要正确的 GDI(相对于 GDI+)渲染。

注意:我刚刚意识到,我在这个问题上留下了一个漏洞。有些人指出,呈现 ClearType 文本在他们的机器上运行良好......

我正在尝试将文本呈现为透明 (Color.Transparent) 位图。如果我用纯色来做,一切都很好! (但我必须渲染成透明位图)。

最佳答案

在调用 DrawText() 时指定一个 BackColor:

TextRenderer.DrawText(graphics, "Hello World", this.Font, this.ClientRectangle, Color.Black, this.BackColor);

关于c# - 使用 TextRenderer 将文本绘制到位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18838037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com