日期:2014-05-17  浏览次数:21414 次

怎么设置image的字体和字体大小?
创建一个Image,并在上面输出文字
Image imgTemp = new Bitmap(192,16);//创建Image对象,大小为200 * 200
Graphics g2 = Graphics.FromImage(imgTemp);//在Image对象上创建Graphics对象g2
IntPtr HDC=g2.GetHdc();
         
Font drawFont = new Font("宋体", 36, FontStyle.Regular);
SolidBrush drawBrush = new SolidBrush(Color.Red );
g2.DrawString(lpszString, drawFont, drawBrush, new RectangleF(0, 0, MeasureSize.Width , MeasureSize.Height));

但是要用
bool rt = GetTextExtentExPoint(HDC, lpszString, lpszString.Length, 0, null, null, out MeasureSize);
返回显示区域的大小就不正确了,好像是因为Image还是保存缺省的字体和字体大小,有什么办法是直接修改image的字体和字体大小的,而不是到输出时在指定

------解决方案--------------------
GetTextExtentExPoint 是属于 API 方法吧,请用 g2.MeasureString 替代。
image 只有在绘制的时候才有字体的概念,绘完就只有图像了,在输出时指定是最合理的。