数字水印 IHttpHandler 学习总结
2010-10-19 14:16
323 查看
为图片 添加 数字水印
using System;
using System.Data;
using System.Web;
using System.Drawing.Imaging;
using System.Drawing;
using System.IO;
/// <summary>
/// WaterHandler 的摘要说明
/// </summary>
public class WaterHandler:IHttpHandler
{
private const string WATERIMG = "~/Images/watermark.jpg"; //水印图片
private const string DEFAULTIMG = "~/Images/default.jpg"; //默认图片
public bool IsReusable
{
get { return false; }
}
/// <summary>
/// 给访问图片加水印
/// </summary>
/// <param name="context"></param>
public void ProcessRequest(HttpContext context)
{
Image image = Image.FromFile(context.Server.MapPath(DEFAULTIMG));
if (File.Exists(context.Request.PhysicalPath))
{
string path = context.Request.PhysicalPath;
image = Image.FromFile(path); //下载请求图片
//初始化一个画板
Graphics gp = Graphics.FromImage(image);
//得到水印图片
Image waterimg = Image.FromFile(context.Server.MapPath(WATERIMG));
//水印图片的详细信息
int w = image.Size.Width * 2 / 3;
int h = image.Size.Height * 1 / 10;
int x = image.Size.Width - w;
int y = image.Size.Height - h;
//添加水印
gp.DrawImage(
waterimg,
new Rectangle(new Point(x, y), new Size(w, h)),
new Rectangle(new Point(0, 0), waterimg.Size),
GraphicsUnit.Pixel
);
}
context.Response.ContentType = "Image/Jpeg"; //图片输出的设置
image.Save(context.Response.OutputStream, ImageFormat.Jpeg); //将图片保存到响应流
context.Response.End(); //结束响应流
}
}
using System;
using System.Data;
using System.Web;
using System.Drawing.Imaging;
using System.Drawing;
using System.IO;
/// <summary>
/// WaterHandler 的摘要说明
/// </summary>
public class WaterHandler:IHttpHandler
{
private const string WATERIMG = "~/Images/watermark.jpg"; //水印图片
private const string DEFAULTIMG = "~/Images/default.jpg"; //默认图片
public bool IsReusable
{
get { return false; }
}
/// <summary>
/// 给访问图片加水印
/// </summary>
/// <param name="context"></param>
public void ProcessRequest(HttpContext context)
{
Image image = Image.FromFile(context.Server.MapPath(DEFAULTIMG));
if (File.Exists(context.Request.PhysicalPath))
{
string path = context.Request.PhysicalPath;
image = Image.FromFile(path); //下载请求图片
//初始化一个画板
Graphics gp = Graphics.FromImage(image);
//得到水印图片
Image waterimg = Image.FromFile(context.Server.MapPath(WATERIMG));
//水印图片的详细信息
int w = image.Size.Width * 2 / 3;
int h = image.Size.Height * 1 / 10;
int x = image.Size.Width - w;
int y = image.Size.Height - h;
//添加水印
gp.DrawImage(
waterimg,
new Rectangle(new Point(x, y), new Size(w, h)),
new Rectangle(new Point(0, 0), waterimg.Size),
GraphicsUnit.Pixel
);
}
context.Response.ContentType = "Image/Jpeg"; //图片输出的设置
image.Save(context.Response.OutputStream, ImageFormat.Jpeg); //将图片保存到响应流
context.Response.End(); //结束响应流
}
}
相关文章推荐
- 数字水印学习系统之二 界面部分源代码
- 视频数字水印总结
- 学习总结之 时间数字格式化
- 数字水印学习之混沌学习
- 数字水印学习系统之四 提升小波操作
- 剑指Offer学习总结-旋转数组的最小数字
- 数字水印学习系统之五 混沌操作
- 数字水印学习系统之六 攻击模拟
- python学习习题总结(9)——练习题猴子桃子,7个数字组成的奇数。。。
- 剑指Offer学习总结-数组中只出现一次的数字
- python学习总结四(python数字)
- HttpHandler学习总结实例应用-读书笔记
- 数字电路的学习总结
- 数字水印学习教程
- 数字水印学习系统
- 剑指Offer学习总结-圆圈中最后剩下的数字
- python学习习题总结(1)——求数字位数,正序倒序输出
- 剑指Offer学习总结-和为S的两个数字
- 数字签名和数字证书的学习总结
- 模拟电路和数字电路的学习笔记(精华总结55条)