我的应用要求是使用自定义字体 生成图片。我使用了.NET 的 Graphics.DrawString(...) 来生成图片,但生成图片的效果和在Label控件内使用相同的字体效果不同(如下图所示)。最明显的是“欢”子明显要细很多。我想知道的是如何能让“欢”显示与其他字同样的粗细。如果不能用DrawString(..)来达到这个目的。有没有其它方法可以用指定的字体来生成图片。
下面是用来生成图片的代码:
private Bitmap CreateBitmapImage()
{
string sImageText = "欢迎 放松模式";
Font font = new Font("MHeiGB18030C Medium", 21, System.Drawing.FontStyle.Regular, GraphicsUnit.Pixel);
Bitmap objBmpImage = new Bitmap(1, 1);
// Create a graphics object to measure the text's width and height.
Graphics objGraphics = Graphics.FromImage(objBmpImage);
// This is where the bitmap size is determined.
int width = (int)objGraphics.MeasureString(sImageText, font).Width;
int height = (int)objGraphics.MeasureString(sImageText, font).Height;
Bitmap bmp = new Bitmap(width, height);
using (Graphics g = Graphics.FromImage(bmp))
{
g.Clear(Color.White);
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
g.DrawString(sImageText, font, Brushes.Black, 0, 0);
}
return bmp;
}