asp.net如何给每张图片动态添加水印方法(二)
第一步,在App_Code中新建一個類,類名為BookCoverHandler,然后代碼如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
/// <summary>
///BookCoverHandler 的摘要說明
/// </summary>
public class BookCoverHandler:IHttpHandler
{
????public void ProcessRequest(HttpContext context)
????{
????????//獲取請求的圖片信息
????????//string isbn = context.Request.QueryString["isbn"];
????????//找圖片
????????//string path = context.Server.MapPath("~/Images/BookCovers/" + isbn + ".jpg");
????????string path = context.Request.PhysicalPath;
????????string defaultPath = context.Server.MapPath("~/images/default.jpg");
????????string waterPath = context.Server.MapPath("~/images/watermark.jpg");
????????//處理圖片
????????Image cover;
????????//圖片存在加水印
????????if (File.Exists(path))
????????{
????????????Image water = Image.FromFile(waterPath);
????????????cover = Image.FromFile(path);
????????????Graphics g = Graphics.FromImage(cover);
????????????g.DrawImage(water,
????????????????cover.Width - water.Width,
????????????????cover.Height - water.Height,
????????????????water.Width,
????????????????water.Height);
????????????g.Dispose();
????????}
????????else//圖片不存在加載默認圖片?
????????{
????????????cover = Image.FromFile(defaultPath);
????????}
????????context.Response.ContentType = "image/jpeg";
????????cover.Save(context.Response.OutputStream, ImageFormat.Jpeg);
????????cover.Dispose();
????????context.Response.End();
????}
????public bool IsReusable
????{
????????get
????????{
????????????return true;
????????}
????}
}
第二部,在web.config中????<httpHandlers>
??????<!--圖片水印-->
??????<add verb="*" type="BookCoverHandler" path="Images/BookCovers/*.jpg" />
????</httpHandlers>
然后就會為Images/BookCovers/下的jpg圖片自動添加水印
轉載于:https://www.cnblogs.com/zhanghai/p/4461255.html
總結
以上是生活随笔為你收集整理的asp.net如何给每张图片动态添加水印方法(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 丁洪波 -- 不要“ 总是拿着微不足道
- 下一篇: Developer Express .N