通常處理程序給圖片加水印

當直接請求網站中images目錄下的.jpg圖片時把圖片加上水印,而後輸出html

一、在web.config中設置一個全局應用程序來處理該目錄下的請求web

?
<System.Web>
     <httpHandlers>
         <add verb= "*" path= "images/*.jpg" type= "WaterMarker" >

 二、建立一個處理水印的類,對應type中的WaterMarkeride

複製代碼
 1 using System;
 2 using System.Web;
 3 using System.Drawing;
 4 
 5 /// <summary>
 6 ///WaterMarker 的摘要說明
 7 /// </summary>
 8 public class WaterMarker:IHttpHandler
 9 {
10     public bool IsReusable
11     {
12         get { return false; }
13     }
14 
15     public void ProcessRequest(HttpContext context)
16     {
17         context.Response.ContentType = "image/jpeg";
18         //獲取報文中的路徑
19         string rawUrl = context.Request.RawUrl;
20         //原始圖片地址
21         string path = context.Request.MapPath(rawUrl);
22         //logo圖片的地址
23         string logoPath = context.Request.MapPath("../logo.png");
24         //添加水印
25         using (Image Img = Image.FromFile(path)) 
26         {
27             using (Image logo = Image.FromFile(logoPath)) 
28             {          //建立畫布
29                 Graphics g = Graphics.FromImage(Img);
30                 //設置logo位置右下角
31                 g.DrawImage(logo,Img.Width-logo.Width-10,Img.Height-logo.Height);
32                 //輸出圖片
33                 Img.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);         g.Dispose();
34             }
35         }
36 
37     }
38     public WaterMarker()
39     {
40         //
41         //TODO: 在此處添加構造函數邏輯
42         //
43     }
44 }
相關文章
相關標籤/搜索