我們在網站上有些時候需要給圖片加上帶版權的水印,.net的Graphics類可以很輕松的實現這一點。
效果圖:(圖片最上端的那行字便是我們加上的版權水印了)

實現代碼:


/**//// <summary>

/// 生成帶版權水印的圖片

/// </summary>

/// <param name="IconImg">要生成水印圖片的文件地址</param>

private void MakeWaterMark(string IconImg)


{

//定義輸出位圖

Bitmap bmp = new Bitmap(640, 480);

//定義繪圖對象

Graphics g = Graphics.FromImage(bmp);

//描述繪圖矩形區域

Rectangle newRect = new Rectangle(0, 0, 640, 480);

//設置背景色

g.FillRectangle(new SolidBrush(Color.White), newRect);

//獲取要生成水印的圖片

Bitmap newBitmap = new Bitmap(IconImg);

g.DrawImage(newBitmap, 16, 16);

//定義水印字的字體

Font font = new Font(

"Arial",

12,

FontStyle.Bold

);

//定義水印字的格式刷

LinearGradientBrush brush = new LinearGradientBrush(

new Rectangle(0, 0, 71, 23),

Color.Red,

Color.Blue,

30f,

true

);

//給照片打上水印

g.DrawString("copyright by test. " + System.DateTime.Now.ToShortDateString(), font, brush, 0, 0);

//保存為新的輸出圖片

System.IO.MemoryStream ms = new System.IO.MemoryStream();

bmp.Save(ms, ImageFormat.Jpeg);

//輸出圖片

Response.ClearContent();

Response.ContentType = "image/jpeg";

Response.BinaryWrite(ms.ToArray());

}