【问题标题】:Render antialiased text using TextRenderer C#使用 TextRenderer C# 渲染抗锯齿文本
【发布时间】:2021-01-07 06:39:51
【问题描述】:

我编写了一个程序来在图像上绘制一些字符串。我使用graphics.DrawString(),但正如您在this 帖子中看到的那样,它存在一些问题。
TextRenderer.DrawText() 解决了这个问题,但呈现的文本是锯齿状的。我更改了graphics.TextRenderingHint 和图形分辨率; TextRenderer 根本不在乎。
应该有一个解决方案,因为它已经完成here;但我不知道该怎么做。

【问题讨论】:

  • 正在阅读第二个链接,看来您必须手动设置字体质量?图形对象属性 (GDI+) 不会影响 Textrenderer (GDI) - 或者这就是我理解链接信息的方式。
  • @Arvo 我应该如何设置字体质量?
  • 我不知道,这只是我从链接讨论中了解到的。

标签: c# gdi antialiasing text-rendering


【解决方案1】:
        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            //GDI (i.e. TextRenderer)
            String s = "The quick brown fox jumped over the lazy dog";
            Point origin = new Point(11, 11);
            Font font = SystemFonts.IconTitleFont;

            e.Graphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixel;

            TextRenderer.DrawText(e.Graphics, s, font, origin, SystemColors.InfoText);
        }

显示它确实工作的完整演示:https://mega.nz/file/E3xREYIR#kuDxyac_0jxlX7wuTVmZmJgClEicdaCj0YpnE83Wq9k

【讨论】:

  • 你是对的。然而,这些属性对这种字体(IranNastaliq)的影响真的很低。起初我无法检测到 TextRenderer 的不同 TextRenderingHint 模式之间的区别。所有模式之间只有少数(可能少于 10 个)像素不同。此外,当我增加字体大小时,即使使用TextRendereroverlapping problem 也会再次出现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-29
  • 1970-01-01
  • 2012-11-16
相关资源
最近更新 更多