using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
namespace BookShop_Feng_
{
///<summary>
/// 添加水印
///</summary>
public class WaterImage : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
//默认图片路劲
string default_Url = "/Images/default.jpg";
//水印图片
string water_Url = "/Images/WaterMark.jpg";
//封面图片
Image Cover = null;
//判断请求的物理路径是否存在
if (File.Exists(context.Request.PhysicalPath))
{
//获得 加载的图片路径
Cover = Image.FromFile(context.Request.PhysicalPath);
//获得水印路劲
Image waterImage = Image.FromFile(context.Request.MapPath(water_Url));
//创建画板,将水印图片画到封印图片上
Graphics g = Graphics.FromImage(Cover);
g.DrawImage(waterImage, new Rectangle(Cover.Width - waterImage.Width, Cover.Height - waterImage.Height, waterImage.Width, waterImage.Height), 0, 0, waterImage.Width, waterImage.Height, GraphicsUnit.Pixel);
//关闭画板
g.Dispose();
}
else
{
//读取默认图片
Cover = Image.FromFile(context.Request.MapPath(default_Url));
}
context.Response.ContentType = "image/Jpeg";
//保存二进制保存
Cover.Save(context.Response.OutputStream, ImageFormat.Jpeg);
//关闭图片对象
Cover.Dispose();
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
上面是添加水印的代码 下面还有项目中的配置 如果你的事网站的话就在Web.config中的httpHandlers节点配置如下代码:
<httpHandlers> <remove verb="*" path="*.asmx"/> <!--设置水印的路径和处理水印的类--> <!--<add verb="*" path="Admin/Files/*.jpg" type="BookShop_Feng_.WaterImage" />--> <add verb="*" path="Images/BookCovers/*.jpg,Admin/Files/*.jpg" type="BookShop_Feng_.WaterImage" /><!--其它自动生成的代码省略--> </httpHandlers>
你主意下图片和配置节点中的path和type
十分谢谢,要的就是这个了
@卜广超: 没有撒子 自己好好研究研究哟 都是同道中人嘛
可以用撒???