看你的逻辑是不是:原始图片cover 需要转换成水印图片 water 
可你最后输出和保存,就和water 没扯上关系context.Response.ContentType = "image/jpeg";
//将修改的图片存入输出流
cover.Save(context.Response.OutputStream, ImageFormat.Jpeg);
cover.Dispose();//释放你看下是不是逻辑问题

解决方案 »

  1.   

    <add verb="*" path="~/Admin/BookCovers/*.jpg" type="CoverHandler" />
    这个不要用虚拟路径,
    改成
    <add verb="*" path="Admin/BookCovers/*.jpg" type="CoverHandler" />
    这个试试。
      

  2.   

    配置文件路径是否引用正确
    iis是否有添加相应映射
            public void ProcessRequest(HttpContext context)
            {
                string path = context.Request.PhysicalPath;
                string water = context.Server.MapPath("/water/water.png");
                if (!File.Exists(path))
                {
                    context.Response.WriteFile(context.Server.MapPath("/error/error.gif"));
                    context.Response.End();
                }
                System.Drawing.Image waterImage = System.Drawing.Image.FromFile(water);
                System.Drawing.Image Image = System.Drawing.Image.FromFile(path);
                if (Image.PixelFormat == PixelFormat.Format1bppIndexed || Image.PixelFormat == PixelFormat.Format4bppIndexed || Image.PixelFormat == PixelFormat.Format8bppIndexed)
                {
                    Bitmap bitmap = new Bitmap(Image.Width, Image.Height);
                    Graphics gtemp = Graphics.FromImage(bitmap);
                    gtemp.DrawImage(Image, 0, 0, bitmap.Width, bitmap.Height);
                    gtemp.DrawImage(waterImage, new Rectangle(Image.Width - waterImage.Width, Image.Height - waterImage.Height, waterImage.Width, waterImage.Height), new Rectangle(0, 0, waterImage.Width, waterImage.Height), GraphicsUnit.Pixel);
                    bitmap.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
                    bitmap.Dispose();
                    gtemp.Dispose();
                }
                else
                {
                    Graphics g = Graphics.FromImage(Image);
                    g.DrawImage(waterImage, new Rectangle(Image.Width - waterImage.Width, Image.Height - waterImage.Height, waterImage.Width, waterImage.Height), new Rectangle(0, 0, waterImage.Width, waterImage.Height), GraphicsUnit.Pixel);
                    Image.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
                    g.Dispose();
                }
                waterImage.Dispose();
                Image.Dispose();
                context.Response.ContentType = "image/jpeg";
                context.Response.End();
            }
    <add verb="*" path="images/*.jpg,images/*.gif" type="HandlerClass.water,HandlerClass"/>
      

  3.   

    再次我说声谢谢了! 我都试过你们所说的办法  还是不能实现效果。  
    <add verb="*" path="~/Admin/BookCovers/*.jpg" type="CoverHandler" />
    改成
    <add verb="*" path="Admin/BookCovers/*.jpg" type="CoverHandler" />
    结果不显示图片。
    我没启用IIS,不过我照着写了一遍也是不好用。