程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> 在Asp.net中為圖像加入水印信息並保存為Jpg類型

在Asp.net中為圖像加入水印信息並保存為Jpg類型

編輯:ASP.NET基礎
using System.Drawing;
using System.IO;
using System.Drawing.Imaging;

private void AddTextToImg(string fileName,string text)
{
if(!File.Exists(MapPath(fileName)))
{
throw new FileNotFoundException("The file don't exist!");
}

if( text == string.Empty )
{
return;
}
//還需要判斷文件類型是否為圖像類型,這裡就不贅述了

System.Drawing.Image image = System.Drawing.Image.FromFile(MapPath(fileName));
Bitmap bitmap = new Bitmap(image,image.Width,image.Height);
Graphics g = Graphics.FromImage(bitmap);

float fontSize = 12.0f; //字體大小
float textWidth = text.Length*fontSize; //文本的長度
//下面定義一個矩形區域,以後在這個矩形裡畫上白底黑字
float rectX = 0; 
float rectY = 0;
float rectWidth = text.Length*(fontSize+8);
float rectHeight = fontSize+8;
//聲明矩形域
RectangleF textArea = new RectangleF(rectX,rectY,rectWidth,rectHeight);

Font font = new Font("宋體",fontSize); //定義字體
Brush whiteBrush = new SolidBrush(Color.White); //白筆刷,畫文字用
Brush blackBrush = new SolidBrush(Color.Black); //黑筆刷,畫背景用

g.FillRectangle(blackBrush,rectX,rectY,rectWidth,rectHeight); 

g.DrawString(text,font,whiteBrush,textArea);
MemoryStream ms = new MemoryStream( );
//保存為Jpg類型
bitmap.Save(ms,ImageFormat.Jpeg);

//輸出處理後的圖像,這裡為了演示方便,我將圖片顯示在頁面中了
Response.Clear();
Response.ContentType = "image/jpeg";
Response.BinaryWrite( ms.ToArray() );

g.Dispose();
bitmap.Dispose();
image.Dispose();
}

調用時很簡單,

AddTextToImg("me.jpg","程序人生http://www.manong123.com/");

一切OK了,感覺.net確實好強大,這些功能在Asp中可是奢侈品了,而在.Net環境中卻能輕而易舉的完成!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved