zoukankan      html  css  js  c++  java
  • 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图片自动添加水印


    经验在于积累----武二郎
  • 相关阅读:
    jQuery Ajax通用js封装
    java校验导入的模板
    一条sql查出数据库某张表的所有属性
    封装SpringJdbcTemplate
    ehCache 配置
    使用mybatis自动实现接口封装返回结果集
    js打开新窗口并且居中显示
    单例模式读取配置文件只创建一次
    递归
    函数声明,函数表达式
  • 原文地址:https://www.cnblogs.com/zhanghai/p/4461255.html
Copyright © 2011-2022 走看看