ASP.NET怎么实现图片自动添加水印

  介绍

小编给大家分享一下ASP。净怎么实现图片自动添加水印,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!

先建一个类,感觉注释已经很详细了,有不懂的欢迎评论

using 系统;   using  System.Collections.Generic;   using  System.Drawing;   using  System.Drawing.Imaging;   using 先;   using 来;   using 包含;      namespace  shuiyin   {   ,public  class  Water : IHttpHandler   ,{   ,/*   ,,这个IsReusable的真的是可以提高效率但是,会线程不安全   ,,IHttpHandler实例可以再次使用      ,,假的,会安全一些,效率会低一些   ,,IHttpHandler的实例就不能使用,   ,,*/public 才能bool  IsReusable =祝辞,真的;//水才能印   private 才能const  string  Water_Url =,“~/图片/watermark.png";//没才能有图片的时候使用   private 才能const  string  None_Picture =,“~/错误/default.jpg";      public 才能;void  ProcessRequest (HttpContext 上下文)   {才能   ,,//获取图片的物理路径   ,,string  path =, context.Request.PhysicalPath;   ,,Image 形象;   ,,//如果我当前项目中有这个图片,就可以进行加水印操作   ,,if  (File.Exists(路径))   ,,{   ,,,//获取指定的图片(要添加水印的图片)   ,,,image =, Image.FromFile(路径);   ,,,//再找的到,要添加的水印   ,,,Image  image_Water =, Image.FromFile (context.Server.MapPath (Water_Url));   ,,,//使用画图的类,获取图片   ,,,Graphics  Graphics =, Graphics.FromImage(图片);   ,,,//画图方法,第一个参数就是要添加的水印   ,,,graphics.DrawImage (image_Water,   ,,,,//第二个参数是一个坐标的问题,从(x1, y1坐标开始,绘制的水印的长度和宽度,   ,,,,//一共四个参数(x1, y1,水印的长度,宽度   ,,,,new 矩形(image.Width 安康;image_Water.Width, image.Height 作用;image_Water.Height,, image_Water.Width,, image_Water.Height),   ,,,,//从上一个参数获取的位置开始作为新的区域   ,,,,//新区域的0,0开始,也是宽度和长度,   ,,,,//最后一个参数就是,像素的问题,多少像素   ,,,,0,0,,image_Water.Width,, image_Water.Height, GraphicsUnit.Pixel);   ,,,//使用完了,把两个图片的资源都释放掉   ,,,graphics.Dispose ();   ,,,image_Water.Dispose ();   ,,}   其他的,,   ,,{   ,,,//这里是如果没有指定的图片的话,就用一个找不到的图片去代替   ,,,image =, Image.FromFile (context.Server.MapPath (None_Picture));   ,,}   ,,//新图片的类型   ,,context.Response.ContentType =,“图像/Jpeg";   ,,//把新图片进行保存,输出流和格式   ,,image.Save (context.Response.OutputStream, ImageFormat.Jpeg);   ,,//使用完保存,释放掉图片的资源,结束   ,,image.Dispose ();   ,,context.Response.End ();         ,,}   ,}   }

修改配置文件

 ASP。净怎么实现图片自动添加水印

& lt; system.webServer>   ,& lt; handlers>   & lt;才能add 动词=?“,name=癷mage_Water",路径=巴枷?* .jpg",类型=皊huiyin.Water"/比;   ,& lt;/handlers>   & lt;/system.webServer>

路径是加水印图片的地址,类型是那个类的路径:
也就是命名空间。(点)类名

一个简单的web窗体

& lt; % @  Page 语言=癱#“, AutoEventWireup=皌rue",后台代码=癟hreePicture_Water.aspx.cs",继承=皊huiyin.ThreePicture_Water", %比;      & lt; ! DOCTYPE  html>      & lt; html  xmlns=癶ttp://www.w3.org/1999/xhtml"比;   & lt; head  runat=皊erver"祝辞   & lt; meta  http-equiv=癈ontent-Type",内容=皌ext/html;, charset=utf-8"/比;   ,& lt; title> & lt;/title>   & lt;/head>   & lt; body>   ,& lt; form  id=癴orm1", runat=皊erver"比;   & lt;才能div>   ,,& lt; img  src=https://www.yisu.com/zixun/巴枷?adv1.jpg "/>         
  

效果图

 ASP。净怎么实现图片自动添加水印

看完了这篇文章,相信你对“ASP.NET怎么实现图片自动添加水印”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

ASP.NET怎么实现图片自动添加水印