zoukankan      html  css  js  c++  java
  • asp.net如何给每张图片动态添加水印方法(一)

    前台


     <asp:ImageButton ID="imgBtn2" runat="server" ImageUrl="~/imageHandler.ashx?isbn=7115147353" Width="128" Height="135"/>

    httpHandle后台

    <%@ WebHandler Language="C#" Class="imageHandler" %>


    using System;

    using System.Web;

    using System.Drawing;

    using System.Drawing.Imaging;

    using System.IO;

    using System.Text;


    public class imageHandler : IHttpHandler {

        

        public void ProcessRequest (HttpContext context) {

            string isbn = context.Request.QueryString["isbn"];


            string path = context.Server.MapPath("~/Images/BookCovers/"+isbn+".jpg");

            string defaultImg = context.Server.MapPath("~/Images/default.jpg");

            string waterImg = context.Server.MapPath("~/Images/WaterMark.jpg");


            Image cover;

            if (File.Exists(path))

            {

                //加载水印

                Image water = Image.FromFile(waterImg);

                //加载文件

                cover = Image.FromFile(path);

                //实例化画布

                Graphics g = Graphics.FromImage(cover);

                //在Images上绘制水印

                g.DrawImage(

                    water, cover.Width - water.Width,

                    cover.Height - water.Height,

                    water.Width, water.Height

                    );

                g.Dispose();



            }


            else//图片不存在时加载默认图片

            {

                cover = Image.FromFile(defaultImg);

            }

            //设置输出类型为jpeg图片

            context.Response.ContentType = "image/jpeg";

            //将修改的图片存入输出流

            cover.Save(context.Response.OutputStream, ImageFormat.Jpeg);

            cover.Dispose();

            context.Response.End();

            

                }

        public bool IsReusable {

            get {

                return true;

            }

        }


    }


    经验在于积累----武二郎
  • 相关阅读:
    Vue之computed与watch的使用
    Vue之组件的生命周期
    Vue之过滤器的使用
    Vue之父子组件的通信
    Vue之组件的使用
    Vue之数据绑定
    Vue之指令系统
    20182316胡泊 课程总结
    20182316胡泊 《数据结构与面向对象程序设计》实验9报告
    20182316胡泊 第10周学习总结
  • 原文地址:https://www.cnblogs.com/zhanghai/p/4461256.html
Copyright © 2011-2022 走看看