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