|
- using System;
- using System.Data;
- using System.Configuration;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Web.UI.HtmlControls;
- using System.Drawing;
- using System.Drawing.Imaging;
- using System.Drawing.Text;
- using System.IO;
- /// <summary>
- /// 本页面只作为一个图片被调用
- /// </summary>
- public partial class _Default : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- SetFontImage(Request.QueryString["familyName"], Convert.ToInt32(Request.QueryString["fontSize"]), Request.QueryString["targetString"]);
- }
- /// <summary>
- /// 生成文字图片
- /// </summary>
- /// <param name="familyName">字体</param>
- /// <param name="fontSize">字号</param>
- /// <param name="targetString">生成内容</param>
- public void SetFontImage(string familyName,int fontSize,string targetString)
- {
- //创建位图对象
- Bitmap objBitmap = null;
- //创建绘图图面对象
- Graphics g = null;
- //创建并初始化字体对象
- Font stringFont = new Font(familyName, fontSize, FontStyle.Bold);
- //文本布局对象
- StringFormat stringFormat = new StringFormat();
- //设置文本格式
- stringFormat.FormatFlags = StringFormatFlags.NoWrap;
- //绘图过程
- try
- {
- //实例化位图对象
- objBitmap = new Bitmap(1, 1);
- //实例化绘图图面对象,将位图对象放入图面中
- g = Graphics.FromImage(objBitmap);
- //获取欲绘制文字图片的高宽
- SizeF stringSize = g.MeasureString(targetString, stringFont);
- int nWidth = (int)stringSize.Width;
- int nHeight = (int)stringSize.Height;
- //获取高宽后释放无用的图面对象资源和位图对象资源
- g.Dispose();
- objBitmap.Dispose();
- //根据已获得的高宽实例化新的位图对象
- objBitmap = new Bitmap(nWidth, nHeight);
- //根据新的位图对象实例化新的绘图图面对象
- g = Graphics.FromImage(objBitmap);
- //填充图片,可以指定背景颜色,开始坐标和图片高宽,指定文本呈现样式
- g.FillRectangle(new SolidBrush(Color.White), new Rectangle(0, 0, nWidth, nHeight));
- g.TextRenderingHint = TextRenderingHint.AntiAlias;
- //开始绘制
- g.DrawString(targetString, stringFont, new SolidBrush(Color.Black), new PointF(0, 0), stringFormat);
- //生成图片
- objBitmap.Save(Response.OutputStream, ImageFormat.Gif);
-
- }
- catch (Exception ee)
- {
- Response.Write(ee.ToString());
- }
- finally
- {
- if (null != g) g.Dispose();
- if (null != objBitmap) objBitmap.Dispose();
- Response.End();
- }
- }
复制代码 本文摘自http://hi.baidu.com/zjali/item/1fff021e7c5e9cf787ad4eeb
|
|