smiles

导航

添加水印的方法

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Drawing;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;

/// <summary>
/// ConverHandler 的摘要说明
/// </summary>
public class ConverHandler : IHttpHandler
{
    public ConverHandler()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }

    private const string WATERMARK_URL = "~/Images/WaterMark.jpg";
    private const string DEFAULTIMAGE = "~/Images/default.jpg";
  

    #region IHttpHandler 成员

    public bool IsReusable
    {
        get { return false; }
    }

    public void ProcessRequest(HttpContext context)
    {
        Image conver;
        if (File.Exists(context.Request.PhysicalPath))
        {
            conver = Image.FromFile(context.Request.PhysicalPath);
            Image watermark = Image.FromFile(context.Request.MapPath(WATERMARK_URL));
            Graphics g = Graphics.FromImage(conver);
            g.DrawImage(watermark, new Rectangle(conver.Width - watermark.Width,
          conver.Height - watermark.Height, watermark.Width, watermark.Height),
          0, 0, watermark.Width, watermark.Height, GraphicsUnit.Pixel);

            g.Dispose();//释放画布
            watermark.Dispose();//释放水印图片
        }
        else
        {
            conver = Image.FromFile(context.Request.MapPath(DEFAULTIMAGE));
        }
        //设置输出格式
        context.Response.ContentType = "image/jpeg";
        //将图片存入输出流
        conver.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
        conver.Dispose();
        context.Response.End();
    }

    #endregion

}


在web.config中配置节点
 <httpHandlers>
 <add verb="*" path="Images/BookCovers/*.jpg" type="ConverHandler"/>
 </httpHandlers>

posted on 2009-05-20 19:42  心欣  阅读(211)  评论(0编辑  收藏  举报