如何解决如果代码在非 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 举报,一经查实,本站将立刻删除。