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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/408431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python技巧(2)--碾平列表和列表去重

总第 116 篇文章&#xff0c;本文大约 1000 字&#xff0c;阅读大约需要 3 分钟今天介绍和列表相关的两个小技巧&#xff1a;碾平列表&#xff08;flatten list&#xff09;&#xff0c;也就是列表里的元素也带有列表的情况&#xff1b;列表去重&#xff0c;保留原始顺序和不保…

typedef struct 是什么意思

typedef用于定义一种新类型例如定义了如下的结构typedef struct student{int age;int score;}STUDENT;那么则有STUDENT stu1;就相当于struct student stu1&#xff1b;上面的结构也可以直接定义为&#xff1a;typedef struct {int age;int score;}STUDENT;然后将STUDENT作为新…

react学习(19)----可以通过设置默认值去回调

const {dispatch,activity: { cmsPopupList [] },} this.props;

原来电脑并不需要重装系统才能恢复出厂设置,这个操作学起来!

前言 小伙伴们应该都知道手机上有恢复出厂设置的功能&#xff0c;如果想要把手机送给朋友或者卖给别人&#xff0c;就会先恢复出厂设置。 但换到Windows电脑上之后&#xff0c;如果出现同样的情况&#xff0c;就会第一时间想到重装系统。就好像Windows电脑上不存在恢复出厂设…

2020年周记(2/50)

总第 117 篇文章&#xff0c;本文大约 1400 字&#xff0c;阅读大约需要 5 分钟因为春节假期的延长&#xff0c;中间还是休息过长&#xff0c;少了两周的周记了&#xff0c;这是2020年的第二篇周记&#xff0c;内容还是这几个方面&#xff1a;工作学习阅读&写作其他下周计划…

网站权重与排名浅谈

网站权重与排名浅谈  网站权重定义&#xff1a;搜索引擎给网站总体赋予一定的权威值&#xff08;现今这个是一个没有确切的数据&#xff09;&#xff0c;对网站总体权威的评估或者评价&#xff0c;一个网站权重越高&#xff0c;在搜索引擎所占的份量越大&#xff0c;&#xf…

一日一学:返回排序好的列表的索引顺序

总第 118 篇文章&#xff0c;本文大约 700 字&#xff0c;阅读大约需要 2 分钟今天介绍的是对列表排序后&#xff0c;返回排序好的索引顺序。问题描述&#xff1a;给定一个列表 [2, 3, 1, 4, 5] &#xff0c;怎么返回排序后的索引顺序&#xff0c;即 [2,0,1,3,4] ?解决方法&a…

react学习(21)---接口加回调显示

this.props.dispatch({type: activity/addActivityPopup,payload: params,callback: (res) > {if (res.returnCode 0) {message.success(新增成功);} else {message.error(res.returnMsg);}},});

给不了你的幸福

对你的好感从没减少过。我也许真的是个懦弱的人&#xff0c;一直没有真正的对你表露过我自己内心真实的想法。我脸皮薄&#xff0c;那种死皮赖脸的追求办法就是想做也做不出来。一直和你尴尬的相处着&#xff0c;希望从和你聊天的过程中得知你的近况。即使再忙&#xff0c;哪怕…

2020年周记(3/50)

总第 119 篇文章&#xff0c;本文大约 700 字&#xff0c;阅读大约需要 2 分钟第三篇周记&#xff0c;依然在家办公的一周。工作学习阅读&写作其他下周计划ps. 昨天发文章后才发现有些地方需要修改&#xff0c;所以删除了发出的文章&#xff0c;修改后再发出来&#xff1…

react学习(22)---需要export

import React, { Component } from react;class Edit extends Component {render() {return <div>1111</div>;} }export default Edit;

C#泛型理解(转)

[译]C# 理解泛型 PDF 浏览&#xff1a;http://www.tracefact.net/document/generics-in-csharp.pdf源码下载&#xff1a;http://www.tracefact.net/SourceCode/Generics-In-CSharp.rar出 处&#xff1a;http://www.ondotnet.com/pub/a/dotnet/2004/05/17/liberty.html术语表gen…

一日一学--如何对数值型特征进行分桶

点击上方“算法猿的成长“&#xff0c;关注公众号&#xff0c;选择加“星标“或“置顶”总第 120 篇文章&#xff0c;本文大约 1200 字&#xff0c;阅读大约需要 3 分钟今天这篇文章主要是介绍在特征工程中&#xff0c;对数值型特征进行分桶操作的方法。简介分桶是离散化的常用…

ThinkPHP分页链接支持数组参数的办法

这几天在用ThinkPHP做系统&#xff0c;搜索页有个数组参数提交 <input class"params_t" name"t[]" type"checkbox" value"email"> <input class"params_t" name"t[]" type"checkbox" value&qu…

常见的数据增强项目和论文介绍

点击上方“算法猿的成长“&#xff0c;关注公众号&#xff0c;选择加“星标“或“置顶”总第 121 篇文章&#xff0c;本文大约 1100 字&#xff0c;阅读大约需要 3 分钟在机器学习项目中&#xff0c;数据集对算法模型的性能是有很大的影响的&#xff0c;特别是现在深度学习&a…

PS网页设计教程XXIX——如何在PS中设计一个画廊布局

作为编码者&#xff0c;美工基础是偏弱的。我们可以参考一些成熟的网页PS教程&#xff0c;提高自身的设计能力。套用一句话&#xff0c;“熟读唐诗三百首&#xff0c;不会作诗也会吟”。 本系列的教程来源于网上的PS教程&#xff0c;都是国外的&#xff0c;全英文的。本人尝试翻…

RS(2)--从文本数据到用户画像

点击上方“算法猿的成长“&#xff0c;关注公众号&#xff0c;选择加“星标“或“置顶”总第 122 篇文章&#xff0c;本文大约 5100 字&#xff0c;阅读大约需要 15 分钟上一篇文章简单介绍了推荐系统的定义和应用&#xff0c;推荐系统第二篇&#xff0c;简单介绍用户画像的知…