【问题标题】:How to draw solid strings to a bitmap如何将实心字符串绘制到位图
【发布时间】:2015-06-26 00:08:39
【问题描述】:

以下代码

var fnt = new Font("Consolas", 12, FontStyle.Regular);
var bmp = new Bitmap(24, 24);

using (var grp = Graphics.FromImage(bmp))
{
    var size = grp.MeasureString(shortName, fnt, new SizeF(24, 24),
         new StringFormat(StringFormatFlags.NoFontFallback | StringFormatFlags.NoWrap |
                   StringFormatFlags.FitBlackBox));
    grp.TranslateTransform(0, (bmp.Height - size.Height) / 2);
    grp.DrawString("DW", fnt, Color.FromArgb(0xff, 0x33, 0x66, 0x33), 
         new RectangleF(0, 0, 24, 24),
        new StringFormat(StringFormatFlags.NoFontFallback | 
            StringFormatFlags.NoWrap | StringFormatFlags.FitBlackBox));
    grp.TranslateTransform(0, (size.Height - bmp.Height) / 2);
}
bmp.Save(string.Format("d:\\out-{0}.bmp", shortName));

给出的输出看起来像,看起来不太好(放大后你可以看到边框上有黑点)。如果将上面的画笔更改为Brushes.Black,我们会得到,这更好,但它太粗了(注意我将字体样式设置为“常规”)。

但是我可以手动实现 之类的东西,它既清晰又纤薄。那是使用 GIMP 创建的,在透明画布上具有相同的字体系列、字体大小和颜色。

所以我想知道如何以编程方式使用 GDI+ 做同样的事情?

【问题讨论】:

    标签: c# fonts gdi+


    【解决方案1】:

    重复?? Font is very ugly

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-01
      相关资源
      最近更新 更多