为我们发布的图片加上一个水印,也是我们经常要做的事情,那怎么样来做呢,下面就一步步开始吧

首先是一个制作水印的类:ImageHandler,代码如下:

  1. using System;
  2. using System.IO;
  3. using System.Drawing;
  4. using System.Drawing.Imaging;
  5. using System.Data;
  6. using System.Configuration;
  7. using System.Linq;
  8. using System.Web;
  9. using System.Web.Security;
  10. using System.Web.UI;
  11. using System.Web.UI.HtmlControls;
  12. using System.Web.UI.WebControls.WebParts;
  13. using System.Xml.Linq;
  14. /// <summary>
  15. ///ImageHandler 的摘要说明
  16. /// </summary>
  17. public class ImageHandler:IHttpHandler
  18. {
  19. private const string waterMark_URL = "~/Images/waterMark.jpg";
  20. private const string defaultImage_URL = "~/Images/Default.jpg";
  21. public ImageHandler()
  22. {
  23. //
  24. //TODO: 在此处添加构造函数逻辑
  25. //
  26. }
  27. public void ProcessRequest(HttpContext context)
  28. {
  29. System.Drawing.Image ImageConver;
  30. if (File.Exists(context.Request.PhysicalPath))
  31. {
  32. //加载文件
  33. ImageConver = Image.FromFile(context.Request.PhysicalPath);
  34. //加载水印图片
  35. Image waterMark = Image.FromFile(context.Request.MapPath(waterMark_URL));
  36. //重新画布
  37. Graphics g = Graphics.FromImage(ImageConver);
  38. g.DrawImage(waterMark, new Rectangle(ImageConver.Width - waterMark.Width, ImageConver.Height - waterMark.Height, waterMark.Width, waterMark.Height), 0, 0, waterMark.Width, waterMark.Height, GraphicsUnit.Pixel);
  39. g.Dispose();
  40. waterMark.Dispose();
  41. }
  42. else
  43. {
  44. ImageConver=Image.FromFile(context.Request.MapPath(defaultImage_URL));
  45. }
  46. //设置输出格式
  47. context.Response.ContentType="image/jpeg";
  48. ImageConver.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);
  49. ImageConver.Dispose();
  50. context.Response.End();
  51. }
  52. public bool IsReusable
  53. {
  54. get
  55. {
  56. return false;
  57. }
  58. }
  59. }

接下来,我们要做一个很关键的配置,那就是在Web.Config文件中加入如下一句话

<httpHandlers>

<!--图片水印-->
      <add verb="*" path="Images/*.jpg" type="ImageHandler"/>

</httpHandlers>

ASP.NET为图片加上水印的更多相关文章

  1. JAVA给图片加上水印

    import java.awt.Color;       import java.awt.Font;       import java.awt.Graphics;       import java ...

  2. ASP.NET(C#)图片加文字、图片水印,神啊,看看吧

    ASP.NET(C#)图片加文字.图片水印 一.图片上加文字: //using System.Drawing; //using System.IO; //using System.Drawing.Im ...

  3. 使用WPF将图片转变为灰度并加上水印并保存为文件

    原文:使用WPF将图片转变为灰度并加上水印并保存为文件 运行效果: (上图中左下角为原图的缩小显示,By:Johnson为TextBlock)保存的结果图片:上图的"Test Words.& ...

  4. PHP给图片加上图片水印和文字水印实例

    下面给大家分享一下PHP给图片加上图片水印和文字水印实例,这也是网站经常用到的功能,把代码加上去,调用就很简单了. 核心代码: function imageWaterMark($groundImage ...

  5. asp .net 为图片添加文字水印(内包含有加图片水印的方法) .

    在项目中先创建一个Imag_writer 类库 在该类库下分别创建两个枚举类型WaterMarkType (水印的类型).WaterMarkPosition (水印的位置).代码如下: using S ...

  6. 用Python给你的博客加上水印

    之前写的博客里面用到的图片都没有加水印,今天才在别的网站上发现自己的博客居然一个字不动的出现在了别人的文章里,而且还不标注出处,简直醉了. 其实博客这种东西讲真我是很愿意让别人看得,因为自己写的也比较 ...

  7. php给一张图片加上水印效果

    <?php /** * 功能:给一张图片加上水印效果 * $i 要加水印效果的图片 * $t 水印文字 * $size 文字大小 * $pos 水印的位置 * $color 文字的颜色 * $f ...

  8. ps技术--批量给图片加水印

    在日常的办公过程中,对于一些比较重要的文件的扫描件需要特殊处理,这时我们就需要给它们加上水印,保证它们的用途唯一,而这些扫描件很多,不可能一一给他们加水印,所以为提高工作效率,我们就可以使用一些小软件 ...

  9. C# 对图片加水印

    using System; using System.Collections; using System.Data; using System.Linq; using System.Web; usin ...

随机推荐

  1. Oracle中查看无效的对象、约束、触发器和索引

    .检查无效的数据库对象: SELECT owner, object_name, object_type,status FROM dba_objects WHERE status = 'INVALID' ...

  2. Android WebView代理设置方法(API10~21适用)

    最近碰到个需求需要在APP中加入代理,HttpClient的代理好解决,但是WebView碰到些问题,然后找到个API10~API21都通用的类,需要用的同学自己看吧,使用方法,直接调用类方法setP ...

  3. hdu 1890 Robotic Sort

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1890 如下: #include<cstdio> #include<cstdlib&g ...

  4. Java之蛋疼的file Protocol

    file Protocol Opens a file on a local or network drive. Syntax file:///sDrives[|sFile] Tokens sDrive ...

  5. Mac OSX 快捷键&命令行总览

    大家初用Mac OSX可能不习惯,特别收集总结了Mac OSX 上的快捷键,方便大家参考 ,请叫我雷锋. 一.Mac OSX 快捷键 ctrl+shift                       ...

  6. ios各种手势,很有意思

    转自http://blog.csdn.net/likendsl/article/details/7554150 这哥们很厉害的 一.概述 iPhone中处理触摸屏的操作,在3.2之前是主要使用的是由U ...

  7. 整理了一下 jQuery 的原型关系图,理解起来更加方便一些。

    图例:黄色的为对象,蓝色的为函数.

  8. Learning note for Binding and validation

    Summary of my learning note for WPF Binding Binding to DataSet. when we want to add new record, we s ...

  9. 【上传AppStore】iOS项目上传到AppStore步骤流程(第二章) - 利用P12文件生成证书.多人开发必备 & 前言扫盲

    前言的前言 : 有几种关系需要搞清楚的.由我自己经历的坑和看着网上大多数资料来说,比较混乱.现在整理一下 正如前面的文章所言.一套由零 - 申请证书 - AppIDs - Provisioning P ...

  10. python中将字符串转化为本地变量

    var = 123445s= locals()['var']s2=vars()['var'] print s,s2