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图片自动添加水印


    经验在于积累----武二郎
  • 相关阅读:
    类的静态成员
    ActionController::InvalidAuthenticityToken 解决办法
    Ruby的动态特性
    (转)右下角弹出消息框
    使用 Visual C++ 2008 功能包加强 Windows 应用程序
    Ajax以responseXML返回,客户端(IE)不能分析xml问题
    css的精髓是布局,而不是样式——之二
    字符编码的一些内容
    2009年好运!牛年要牛起来
    OpenLayers介绍
  • 原文地址:https://www.cnblogs.com/zhanghai/p/4461255.html
Copyright © 2011-2022 走看看