微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果代码在非 UI 应用程序中执行,GDI 将我的字体更改为 MS Sans Serif

如何解决如果代码在非 UI 应用程序中执行,GDI 将我的字体更改为 MS Sans Serif

我有一种使用 DrawString() 生成图像的方法。如果我在我从任何带有 UI 的程序或控制台应用程序测试的每台机器上调用方法,一切都很好。图片显示了正确的字体。

但如果我从 Windows 服务或 IIS 网站调用方法,GDI (?) 会自动更改为 Microsoft Sans Serif,无一例外。

它在 Windows 7 上运行多年。更改为 Windows Server 2019 后第一次出现问题。现在我有 2 台带有 Windows 10 Build 20H2 和相同 .NET 版本的开发机器。在一台机器上生成图像效果很好,在另一台机器上字体会发生变化。任何想法,我能做什么,让它在每台机器上工作?

public void GenerateBitmap()
{
    string drawString = "Sample Text 1234567890";

    using  (Bitmap bmp = new Bitmap(5000,200,PixelFormat.Format32bppArgb))
    {
        bmp.SetResolution(300,300);
        using (Graphics grfx = Graphics.FromImage(bmp))
        {
            using (Brush brush = new SolidBrush(Color.Black))
            {
                Font f = new Font("MyFontName",22F);
                grfx.DrawString(drawString,f,brush,new Point(0,0));
            }
        }
        bmp.Save("test.png",System.Drawing.Imaging.ImageFormat.Png);
        bmp.dispose();
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。