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

asp.net继承IHttpHandler接口实现给网站图片添加水印功能实例

程序员文章站 2023-11-21 11:52:10
本文实例讲述了asp.net继承ihttphandler接口实现给网站图片添加水印功能。分享给大家供大家参考,具体如下: 先展示图片效果: 1. 在app_code...

本文实例讲述了asp.net继承ihttphandler接口实现给网站图片添加水印功能。分享给大家供大家参考,具体如下:

先展示图片效果:

asp.net继承IHttpHandler接口实现给网站图片添加水印功能实例

1. 在app_code下添加类文件,命名为imagesy 文件内容如下

public class imagesy : ihttphandler
{
  public imagesy()
  {
    //
    //todo: 在此处添加构造函数逻辑
    //
  }
  #region ihttphandler 成员
  public bool isreusable
  {
    get { return true; }
  }
  public void processrequest(httpcontext context)
  {
    //获得请求的物理图片路径
    string imagepath = context.request.physicalpath;
    system.drawing.image image = null;
    if (file.exists(imagepath))
    {
      //定义水印文字
      string text = "本图片来至我的网站";
      //定义水印文字字体大小
      int fontsize = 22;
      //水印文字字体
      font font = new font("宋体", fontsize);
      //根据图片物理地址加载图片
      image = system.drawing.image.fromfile(imagepath);
      graphics g = graphics.fromimage(image);
      //获取要绘制水印文字所需要的显示区域大小
      sizef size = g.measurestring(text, font);
      if (size.width > image.width || size.height > image.height)
      {
      }
      else
      {
        brush brush = brushes.red;
        g.drawstring(text, font, brush, image.width - size.width, image.height - size.height);
        g.dispose();
      }
    }
    else
    {
    }
    image.save(context.response.outputstream, imageformat.jpeg);
  }
  #endregion
}

2. 配置webconfig,添加location新节点

<location path="images">
 <system.web>
  <httphandlers>
  <!---对jpg文件添加水印-->
  <add verb="*" type="imagesy" path="*.jpg"/>
  <add verb="*" type="imagesy" path="*.gif"/>
  <add verb="*" type="imagesy" path="*.bmp"/>
  </httphandlers>
 </system.web>
 </location>

3. 测试,新建aspx页面,显示图片,水印就会自动加上了

更多关于asp.net相关内容感兴趣的读者可查看本站专题:《asp.net操作json技巧总结》、《asp.net字符串操作技巧汇总》、《asp.net操作xml技巧总结》、《asp.net文件操作技巧汇总》、《asp.net ajax技巧总结专题》及《asp.net缓存操作技巧总结》。

希望本文所述对大家asp.net程序设计有所帮助。