您的位置:首页 > 编程语言 > ASP

asp.net 2.0 将文字转成图片(文字生成图片)

2008-01-10 15:48 381 查看

《asp.net 2.0 将文字转成图片》


出处 :http://blog.csdn.net/LEOlws/archive/2006/12/30/1469370.aspx


作者:甜饼旺




--------------------------- 代码开始 -----------------------------




CompNamePic.aspx(图片要显示在哪个页面中的图片框中)




CompNamePic.Text = "需要显示的文字";






----- ----- ----- ----- ----- ----- ----- -----






CompNamePic.ascx.cs(用于显示自定义文字图片的控件):




using System;




public partial class Shop_UC_CompNamePic : System.Web.UI.UserControl




...{


private string _Text = null;






...#region


public string Text




...{


get




...{


if (_Text == null || _Text.Trim().Length <= 0)




...{


return "";


}


return _Text;


}




set ...{ _Text = value; }


}


#endregion




protected void Page_Load(object sender, EventArgs e)




...{




}




protected override void Render(System.Web.UI.HtmlTextWriter writer)




...{


imgText.ImageUrl = "CompNamePic.aspx?Text=" + Server.UrlEncode(Text);


base.Render(writer);


}


}








----- ----- ----- ----- ----- ----- ----- -----






CompNamePic.aspx.cs(将生成的图片打印到网页):




using System;




public partial class Shop_CompNamePic : System.Web.UI.Page




...{




...#region


private string CompName




...{


get




...{


if (Request.QueryString["Text"] == null || Request.QueryString["Text"].Trim().Length <= 0)




...{


return "";


}


return Server.UrlDecode(Request.QueryString["Text"]);


}


}


#endregion




protected void Page_Load(object sender, EventArgs e)




...{


CreateImgText cit = new CreateImgText(CompName);


Response.BinaryWrite(cit.CreateTextByte());


}


}










----- ----- ----- ----- ----- ----- ----- -----








CreateImgText.cs(用于将文字转换成图片的类):




using System;


using System.IO;


using System.Drawing;


using System.Drawing.Text;


using System.Windows.Forms;




/**//**//**//// <summary>


/// 创建图片文字


/// </summary>


public class CreateImgText




...{


private string _Text = null;


private Color _TextColor = Color.Empty;


private FontStyle _TextStyle = FontStyle.Bold;


private int _Width;


private int _Height;






...#region




/**//**//**//// <summary>


/// 要显示的文本


/// </summary>


public string Text




...{


get




...{


if (_Text == null || _Text.Trim().Length <= 0)




...{


return "图片加载中";


}


return _Text;


}




set ...{ _Text = value; }


}




/**//**//**//// <summary>


/// 文本颜色


/// </summary>


public Color TextColor




...{


get




...{


if (_TextColor == Color.Empty)




...{


return Color.Black;


}


return _TextColor;


}




set ...{ _TextColor = value; }


}




/**//**//**//// <summary>


/// 文本样式 加粗 倾斜 普通等


/// </summary>


public FontStyle TextStyle




...{




get ...{ return _TextStyle; }




set ...{ _TextStyle = value; }


}




/**//**//**//// <summary>


/// 图片的宽


/// </summary>


public int Width




...{




get ...{ return _Width; }


//set { _Width = value; }


}




/**//**//**//// <summary>


/// 图片的高


/// </summary>


public int Height




...{




get ...{ return _Height; }


//set { _Height = value; }


}


#endregion






...#region


public CreateImgText()




...{




}


public CreateImgText(string strText)




...{


_Text = strText;


}




public CreateImgText(string strText,Color TextColor)




...{


_Text = strText;


_TextColor = TextColor;


}


public CreateImgText(string strText, Color TextColor, FontStyle TextStyle)




...{


_Text = strText;


_TextColor = TextColor;


_TextStyle = TextStyle;


}


#endregion






/**//**//**//// <summary>


/// 创建输出的文字流


/// </summary>


/// <returns></returns>


public byte[] CreateTextByte()




...{


Font font = new Font("黑体", 20, TextStyle);


Brush brush = new SolidBrush(TextColor);


// 计算文字的宽和高


Size sizeText = TextRenderer.MeasureText(Text, font);


_Width = sizeText.Width;


_Height = sizeText.Height;


// 创建一个位图


Bitmap bmp = new Bitmap(sizeText.Width, sizeText.Height);






// 设置画布


Graphics grph = Graphics.FromImage(bmp);


// 指定消除锯齿 文字


grph.TextRenderingHint = TextRenderingHint.AntiAlias;


// 清除画布


grph.Clear(Color.White);


// 在画布上画图案 内容,字体,画刷,坐标


grph.DrawString(Text, font, brush, 0, 0);


// 新建一个内存流


MemoryStream stream = new MemoryStream();


// 将图片保存在内存流中


bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);




byte[] byteBuf = new byte[stream.Length];


byteBuf = stream.ToArray();




//资源回收


bmp.Dispose();


grph.Dispose();


stream.Close();




return byteBuf;


}


}






--------------------------- 代码结束 -----------------------------

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: