我在VS2005上运行都能显示出来,水印效果来,但在IIS上运行却没有水印效果。添加水印的代码是自己找来写的。不知道问题出在哪儿了。权限上也改过但还是没出来。
希望知道的高手讲解下。谢谢!!!

解决方案 »

  1.   

    IIS重启试试  贴出代码
      

  2.   

    public class CoverHandler : IHttpHandler
    {
        private const string WATERMARK_URL = "~/images/water.png";        //水印图片
        private const string DEFAULTIMAGE_URL = "~/Images/default.jpg";           //默认图片
        public CoverHandler()
        {
        }
        public void ProcessRequest(HttpContext context)
        {
            System.Drawing.Image Cover;
            //判断请求的物理路径中,是否存在文件
            if (File.Exists(context.Request.PhysicalPath))
            {
                //加载文件
                Cover = Image.FromFile(context.Request.PhysicalPath);
                //加载水印图片
                Image water = Image.FromFile(context.Request.MapPath(WATERMARK_URL));
                //实例化画布
                Graphics g = Graphics.FromImage(Cover);
                //在image上绘制水印
                g.DrawImage(water, new Rectangle((Cover.Width - water.Width + 20), (Cover.Height - water.Height - 10), water.Width, water.Height), 0, 0, water.Width, water.Height, GraphicsUnit.Pixel);
                //释放画布
                g.Dispose();
                //释放水印图片
                water.Dispose();
            }
            else
            {
                //加载默认图片
                Cover = Image.FromFile(context.Request.MapPath(DEFAULTIMAGE_URL));
            }
            //设置输出格式
            context.Response.ContentType = "image/jpeg";
            //将图片存入输出流
            Cover.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
            Cover.Dispose();
            context.Response.End();
        }
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
    配制文件:<add verb="*" path="columnImg/*.jpg" type="CoverHandler"/>
      

  3.   

    找到项目所在文件夹右键-->共享-->共享-->添加everyone用户给读写权限
      

  4.   

    我对everyone也加了权限的啊,但还是不行。无语中
      

  5.   

    你是指上传图片自动加水印,还是浏览你网站上的图片时,服务器自动给加上水印?。
    如果是后者:
    在VS上,VS会转给asp.net来处理。
    在IIS,IIS会自行读取这张图片并直接返回给浏览器。所以你必须配置 IIS,添加 .jpg  .gif等图片扩展名的映射。
      

  6.   

    IIS/某网站/属性/主目录/配置/映射