继承IHttpHandler实现全局图片水印

转自:http://www.myexception.cn/asp-dotnet/1589884_2.html

继承IHttpHandler实现全局图片水印

本帖最后由 butterfly_onfly 于 2014-03-10 23:29:51 编辑
创建了一个 继承IHttpHandler实现全局图片水印_第1张图片
ImageHandler类库,创建了个namespace ImageHandler
{
    public class WriteHandler:IHttpHandler
    {
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
        public void ProcessRequest(HttpContext context)
        {
          
            //获取图片路径
            string imgpath = context.Request.PhysicalPath;
            //获取水印图片路径
            string wpath = context.Server.MapPath("~/img/logo.jpg");
            //获取默认图片路径
            string dpath = context.Server.MapPath("~/img/noPicture.jpg");
            Image img;
            if (File.Exists(imgpath))//判断图片是否存在
            {
                img = Image.FromFile(imgpath);//加载图片
                Image wimg = Image.FromFile(wpath);//加载水印图片
                Graphics g = Graphics.FromImage(img);//让显示的图片设置为背景图片
                //绘制显示图片的矩形
                Rectangle re = new Rectangle(img.Width - wimg.Width, img.Height - wimg.Height, wimg.Width, wimg.Height);
                //绘制水印图片的矩形
                Rectangle re1 = new Rectangle(0, 0, wimg.Width, wimg.Height);
                g.DrawImage(wimg, re, re1, GraphicsUnit.Pixel);
                //文字水印
                //LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, wimg.Width, wimg.Height), Color.White, Color.WhiteSmoke, 1.3f, true);
                //g.DrawString("神农蜂语", new Font("楷书", 15), brush, img.Width - wimg.Width, img.Height - wimg.Height);
                g.Dispose();
                wimg.Dispose();
            }
            else
            {
                img = Image.FromFile(dpath);//如果图片不存在,则加载默认图片
            }
            //保存
            img.Save(context.Response.OutputStream, ImageFormat.Jpeg);
            img.Dispose();
        }
    }
}
在web应用程序的web.config里面的配置

        
      
        
      

    

但是浏览页面,报错:
继承IHttpHandler实现全局图片水印_第2张图片
在应用程序里面要怎么配置web.config?

------解决方案--------------------


        

       
        
      

你可能感兴趣的:(C#,ADO.NET,WEB开发专题,C#学习资料整理)