一、代码
(1)ImageWatermark.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
///ImageWatermark 的摘要说明
/// </summary>
public class ImageWatermark:IHttpHandler
{
public ImageWatermark()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
if (System.IO.File.Exists(context.Request.PhysicalPath))
{
System.Drawing.Image img = new System.Drawing.Bitmap(context.Request.PhysicalPath);
using (System.Drawing.Graphics grap = System.Drawing.Graphics.FromImage(img))
{
grap.DrawString("迎接2012系列", new System.Drawing.Font("宋体", 55), System.Drawing.Brushes.Yellow, new System.Drawing.PointF(0, 0)); //添加文字水印
System.Drawing.Image img2 = new System.Drawing.Bitmap(context.Server.MapPath("~")+"//Image//bj2.jpg");
grap.DrawImage(img2, 50, 65, 250, 300); //添加图片水印
img.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
}
}
(2)web.config
<?xml version="1.0"?>
<!--
有关如何配置 ASP.NET 应用程序的详细信息,请访问
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
<httpHandlers>
<add verb="*" type="ImageWatermark" path="*.jpg"/>
</httpHandlers>
</system.web>
</configuration>
二、效果图
三、尚未仔细测试可能会有错误。