• ASP.NET为图片加上水印


    为我们发布的图片加上一个水印,也是我们经常要做的事情,那怎么样来做呢,下面就一步步开始吧

    首先是一个制作水印的类:ImageHandler,代码如下:

    C#代码  
    1. using System;  
    2. using System.IO;  
    3. using System.Drawing;  
    4. using System.Drawing.Imaging;  
    5. using System.Data;  
    6. using System.Configuration;  
    7. using System.Linq;  
    8. using System.Web;  
    9. using System.Web.Security;  
    10. using System.Web.UI;  
    11. using System.Web.UI.HtmlControls;  
    12.   
    13. using System.Web.UI.WebControls.WebParts;  
    14. using System.Xml.Linq;  
    15.   
    16. /// <summary>  
    17. ///ImageHandler 的摘要说明  
    18. /// </summary>  
    19. public class ImageHandler:IHttpHandler  
    20. {  
    21.     private const string waterMark_URL = "~/Images/waterMark.jpg";  
    22.     private const string defaultImage_URL = "~/Images/Default.jpg";  
    23.   
    24.     public ImageHandler()  
    25.     {  
    26.         //  
    27.         //TODO: 在此处添加构造函数逻辑  
    28.         //  
    29.     }  
    30.   
    31.     public void ProcessRequest(HttpContext context)  
    32.     {  
    33.         System.Drawing.Image ImageConver;  
    34.         if (File.Exists(context.Request.PhysicalPath))  
    35.         {  
    36.             //加载文件  
    37.             ImageConver = Image.FromFile(context.Request.PhysicalPath);  
    38.             //加载水印图片  
    39.             Image waterMark = Image.FromFile(context.Request.MapPath(waterMark_URL));  
    40.             //重新画布  
    41.             Graphics g = Graphics.FromImage(ImageConver);  
    42.             g.DrawImage(waterMark, new Rectangle(ImageConver.Width - waterMark.Width, ImageConver.Height - waterMark.Height, waterMark.Width, waterMark.Height), 0, 0, waterMark.Width, waterMark.Height, GraphicsUnit.Pixel);  
    43.             g.Dispose();  
    44.             waterMark.Dispose();  
    45.         }  
    46.         else  
    47.         {  
    48.             ImageConver=Image.FromFile(context.Request.MapPath(defaultImage_URL));  
    49.         }  
    50.   
    51.         //设置输出格式  
    52.         context.Response.ContentType="image/jpeg";  
    53.         ImageConver.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);  
    54.         ImageConver.Dispose();  
    55.         context.Response.End();  
    56.     }  
    57.   
    58.     public bool IsReusable  
    59.     {  
    60.         get  
    61.         {  
    62.             return false;  
    63.         }  
    64.     }  
    65. }  

    接下来,我们要做一个很关键的配置,那就是在Web.Config文件中加入如下一句话

    <httpHandlers>

    <!--图片水印-->
          <add verb="*" path="Images/*.jpg" type="ImageHandler"/>

    </httpHandlers>

  • 相关阅读:
    查看端口被占用
    Eclipse导入包
    Eclipse中构造方法自动生成
    Eclipse中get/set方法自动生成
    Eclipse改字体大小
    设计六原则
    类的关系
    JAVA实现多线程下载
    try...catch的前世今生
    447. 回旋镖的数量
  • 原文地址:https://www.cnblogs.com/ranran/p/3853300.html
Copyright © 2020-2023  润新知