Asp.Net圖片數字水印的實現
第一種實現方法: --- 利用IHttpHandler
-
新增新建項 -- 一般處理程式
-
<%@ WebHandler Language="C#" Class="JPGHandler" %>
using System;
using System.Web;
using System.Drawing;
public class JPGHandler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
// ①載入將要水印的圖片
Image img = Image.FromFile(context.Server.MapPath("~/img/BookCovers/9293450.jpg"));
// ②載入水印圖片
Image watermark = Image.FromFile(context.Request.MapPath("~/img/WaterMark.jpg"));
// ③例項化畫布
Graphics g = Graphics.FromImage(img);
// ④在image上繪製水印
g.DrawImage(watermark, new Rectangle(img.Width - watermark.Width, img.Height - watermark.Height, watermark.Width, watermark.Height));
// ⑤釋放畫布
g.Dispose();
// ⑥釋放水印圖片
watermark.Dispose();
// ⑦設定輸出型別為JPEG圖片
context.Response.ContentType = "image/jpeg";
// ⑧將修改的圖片存入輸出流
img.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
// ⑨釋放圖片
img.Dispose();
// 最後: 清空快取,傳送Response
context.Response.End();
}
public bool IsReusable {
get {
return true;
}
}
}
-
第二種實現方法: -- 全域性Handler方式
-
修改配置檔案
<httpHandlers>
<add verb="*" path="img/BookCovers/*.jpg" type="ImgHandler"/>
</httpHandlers> -
編寫handler類
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Drawing;
/// <summary>
///ImgHandler 的摘要說明
/// </summary>
public class ImgHandler:IHttpHandler
{
public ImgHandler()
{
//
// TODO: 在此處新增建構函式邏輯
//
}
#region IHttpHandler 成員
public bool IsReusable
{
get { return false; }
}
private const string WATER_URL = "~/img/WaterMark.jpg";
private const string DEFAULT_URL = "~/img/default.jpg";
public void ProcessRequest(HttpContext context)
{
Image img = null;
if (File.Exists(context.Request.PhysicalPath))
{
img = Image.FromFile(context.Request.PhysicalPath);
Image water = Image.FromFile(context.Request.MapPath(WATER_URL));
Graphics g = Graphics.FromImage(img);
g.DrawImage(water, new Rectangle(img.Width - water.Width, img.Height - water.Height, water.Width, water.Height));
g.Dispose();
water.Dispose();
}
else
{
img = Image.FromFile(context.Request.MapPath(DEFAULT_URL));
}
context.Response.ContentType = "image/jpeg";
img.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);
img.Dispose();
context.Response.End();
}
#endregion
}
-
相關文章
- PHP實現水印效果(文字、圖片)PHP
- 用ImageMagick實現數字盲水印
- ASP.NET Ueditor上傳圖片新增水印ASP.NET
- Java ffmpeg 實現影片加文字/圖片水印功能Java
- 轉:Java新增水印(圖片水印,文字水印)Java
- ASP.NET MVC實現剪下圖片ASP.NETMVC
- 批次圖片新增水印
- iOS 圖片上新增水印iOS
- 關於去除圖片上的水印
- 商品圖片批量加水印,一鍵新增文字、logo圖片水印方法分享Go
- iOS-圖片水印,圖片裁剪和螢幕截圖iOS
- CSDN圖片如何手動關閉水印 / 如何改變水印的樣式——CSDN圖片URl分析
- HttpHandler給本站加圖片水印HTTP
- java 圖片水印處理類Java
- SpingBoot/JAVA實現給圖片加水印功能(通過thumbnailator庫)bootJavaAI
- 一個簡單的圖片水印工具
- 數字水印技術 (轉)
- 使用Python實現網頁中圖片的批次下載和水印新增儲存Python網頁
- GD 庫 PNG 透明底圖片新增文字及圖片水印
- Java使用Thumbnailator給圖片加水印JavaAI
- CSDN上傳圖片對水印操作
- php微擎功能-圖片加水印PHP
- 離屏Canvas——製作水印圖片Canvas
- 用photoshop給圖片批次加水印
- 給picgo上傳的圖片加個水印PicGo
- Ueditor上傳圖片自動新增水印(通用圖片檔案)
- 基於Spring Boot實現圖片上傳/加水印一把梭操作Spring Boot
- Nginx Image Module圖片縮圖 水印處理模組Nginx
- 用python來給圖片加水印Python
- Teorex Inpaint Mac(圖片去水印軟體)AIMac
- Teorex Inpaint for Mac(圖片去水印軟體)AIMac
- PhpCms上傳圖片自動新增水印的方法教程PHP
- php圖片水印新增,壓縮,剪下的封裝類PHP封裝
- Mac圖片去水印軟體——Teorex Inpaint for MacMacAI
- nginx 透過 php 代理給圖片加水印NginxPHP
- Java 在Word中新增多行圖片水印Java
- 用canvas生成圖片為頁面新增水印Canvas
- 【Python】批量給圖片增加水印工具Python