/**//// <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]; }