添加水印的方法
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>