asp.net
/**//// <summary>
/// 功能:将文字写入图片
/// 日期:2006-11-20
/// 作者:杨义贤
/// </summary>
/// <param name="strfileName">文件名字</param>
/// <param name="strtext">需要写入的文字</param>
private void TextToImage(string strfileName,string strtext)
{
if(!File.Exists(MapPath(strfileName)))
{
throw new FileNotFoundException("文件不存在!");
}
if( strtext == string.Empty )
{
return;
}
//还需要判断文件类型是否为图像类型
System.Drawing.Image image = System.Drawing.Image.FromFile(MapPath(strfileName));
Bitmap bitmap = new Bitmap(image,image.Width,image.Height);
Graphics grap = Graphics.FromImage(bitmap);
float fontSize = 24.0f; //字体大小
float textWidth = strtext.Length*fontSize; //文本的长度
//下面定义一个矩形区域,以后在这个矩形里画上白底黑字
float rectX = 0;
float rectY = 0;
float rectWidth = strtext.Length*(fontSize+12);
float rectHeight = fontSize+8;
string strFont;//定义字体类型
//声明矩形域
RectangleF textArea = new RectangleF(rectX,rectY,rectWidth,rectHeight);
strFont = ddlfont.SelectedItem.Text.ToString().Trim();
Font font = new Font(strFont,fontSize); //定义字体
Brush whiteBrush = new SolidBrush(Color.White); //白笔刷,画文字用
Brush blackBrush = new SolidBrush(Color.Transparent); //黑笔刷,画背景用
grap.FillRectangle(blackBrush,rectX,rectY,rectWidth,rectHeight);
grap.DrawString(strtext,font,whiteBrush,textArea);
MemoryStream ms = new MemoryStream();
//保存为Jpg类型
bitmap.Save(ms,ImageFormat.Jpeg);
//输出处理后的图像.//在这里可以将生成后的图片放大Oracle数据库Power中
Response.Clear();
Response.ContentType = "image/jpeg";
Response.BinaryWrite(ms.ToArray());
grap.Dispose();
bitmap.Dispose();
image.Dispose();
}
事件:
private void btnWrite_Click(object sender, System.EventArgs e)
{
HttpPostedFile httpPostFile; //客户端上载文件对象
httpPostFile = DocUpload.PostedFile;
string strTemp;
string strFileName;//完成文件名
strTemp = httpPostFile.FileName.ToString().Trim();
strFileName = GetRealFileName(strTemp);
string strImg = "images/";
TextToImage(strImg +strFileName,txtDocName.Text.ToString());
}/**//// <summary>
/// 功能:获取文件名
/// 日期:2006-11-20
/// 作者:杨义贤
/// </summary>
/// <param name="strPathName">文件路径</param>
/// <returns></returns>
public string GetRealFileName(string strPathName)
{
string [] strFileName = strPathName.Split('\');
int iPos = strFileName.GetUpperBound(0);
return strFileName[iPos];
}