我們在網站上有些時候需要給圖片加上帶版權的水印,.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());
}