欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ASP.NET网站开发-图片数字水印

程序员文章站 2024-03-26 09:18:29
...

HttpModule和HttpHandler

ASP.NET网站开发-图片数字水印

一个请求可以经过多个 Module 但是最终只能被一个 Handler处理

using System;
using System.Web;
public class PicHandler : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        context.Response.Write("Hello World");
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }
}

实现数字水印

public void ProcessRequest(HttpContext context)
//实例化图片
Image Cover;
//判断图片物理路径是否存在
    if (File.Exists(context.Request.PhysicalPath))
    {
        //加载图片
        Cover = Image.FromFile(context.Request.PhysicalPath);
        //定义字体
        Font font = new Font(”徽软雅黑”,20);
        //定义画布
        Graphics g = Graphics.FromImage(Cover);
        //合成水印图片
        g.DrawString(“Cool__King”,font,Brushes.Black,Cover.Width - 90,Cover.Height - 30);
        //释放画布
        g.Dispose();
    }
    else
    {
        Cover = Image.FromFile(context.Request.MapPath(defaulting));
    }
    //设置输出类型为JPEG图片
    context. Response.Cont entType = “image/jpeg”;
    //将修改的图片存入输出流
    Cover.Save(context.Response.Outputstream,System.Drawing.Imaging.ImageFormat.Jpeg);
    //释放图片
    Cover.Dispose();
    //终止输出
    context.Response.End();