首页新闻找找看学习计划

如何在httphandler里为整个项目中的图片添加文字水印效果?最好有源码,谢谢!

0
悬赏园豆:5 [已解决问题] 解决于 2012-02-29 09:36

如何在httphandler里为整个项目中的图片添加文字水印效果?最好有源码,谢谢!

卜算子11的主页 卜算子11 | 初学一级 | 园豆:10
提问于:2012-02-28 17:08
< >
分享
最佳答案
0
View Code
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


收获园豆:5
DuFeng | 菜鸟二级 |园豆:270 | 2012-02-28 23:29

十分谢谢,要的就是这个了

卜算子11 | 园豆:10 (初学一级) | 2012-02-29 09:35

@卜广超:   没有撒子 自己好好研究研究哟  都是同道中人嘛

DuFeng | 园豆:270 (菜鸟二级) | 2012-02-29 17:21

可以用撒???

DuFeng | 园豆:270 (菜鸟二级) | 2012-02-29 17:21
其他回答(1)
0
悟行 | 园豆:12238 (专家六级) | 2012-02-28 17:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册