ASP.NET知识总结(一般处理程序动态处理图片(验证码、水印、缩略图))

-》使用GDI+完成图片的处理,需要引入程序集System.Drawing

-》GDI+的基本处理模型

《1》创建画布Bitmap

《2》创建画图工具对象Graphics

《3》调用Draw***、Fill***系列方法完成绘制

《4》保存,可以保存到物理文件中,也可以保存到输出流中

在ashx中使用,需要指定ContentType="image/jpeg";

使用画布对象的Save()方法输出,可以输出到一个物理文件中,也可以输出到流中

使用:<img src="pic.ashx"/>

-》示例1:生成水印图

思路:在原有图片上绘制一段文字或小图片

《实例:aspnet项目复习/第二天/t2_GDITest/AddWater》

-》示例2:生成验证码

思路:创建画布,随机生成字符并绘制

附加功能:“看不清,换一张”

《实例:aspnet项目复习/第二天/t2_GDITest/ValidateCode》

-》示例3:缩略图

思路:将原图按照一个缩小比例,绘制到一个新图上,并完成物理保存

《实例:aspnet项目复习/第二天/t2_GDITest/ScaleTest》

时间: 2024-10-12 14:49:51

ASP.NET知识总结(一般处理程序动态处理图片(验证码、水印、缩略图))的相关文章

007-一般处理程序动态处理图片

->使用GDI+完成图片的处理,需要引入程序集System.Drawing->GDI+的基本处理模型<1>创建画布Bitmap<2>创建画图工具对象Graphics<3>调用Draw***.Fill***系列方法完成绘制<4>保存,可以保存到物理文件中,也可以保存到输出流中 在ashx中使用,需要指定ContentType="image/jpeg"; 使用画布对象的Save()方法输出,可以输出到一个物理文件中,也可以输出到流

asp.net一般处理程序(.ashx)动态生成验证码案例。

{使用一般处理程序动态生成验证码} 1.新建WebSite项目,添加一般处理程序命名为  yzm.ashx,添加如下代码: public void ProcessRequest(HttpContext context)    {   //将context.Response.ContentType = "text/plain";修改为context.Response.ContentType = "image/JPEG";        context.Response

你必须知道ASP.NET知识------关于动态注册httpmodule(对不起汤姆大叔)

一.关于动态注册的问题 很多人看过汤姆大叔的MVC之前的那点事儿系列(6):动态注册HttpModule ,其实汤姆大叔没有发现httpmodule动态注册的根本机制在哪里. 亦即:怎么动态注册?为什么能够动态注册? 汤姆大叔给了如下开篇 通过前面的章节,我们知道HttpApplication在初始化的时候会初始化所有配置文件里注册的HttpModules,那么有一个疑问,能否初始化之前动态加载HttpModule,而不是只从Web.config里读取? 答案是肯定的, ASP.NET MVC3

asp相关知识整理

WWW----World Wide Web(万维网) URL----Uniform Resource Locator(统一资源定位符) HTTP----Hyper Text Transfer Protocol(超文本传输协议) HTML----Hyper Text Markup Language(超文本标记语言) XML----Extensible Markup Language(可扩展标记语言) ODBC----Open DataBase Connectivity(开放数据库连接标准) DLL

【iOS知识学习】_iOS动态改变TableView Cell高度

在做tableView的时候,我们有时候需要根据cell的高度动态来调整,最近在网上看到一段代码不错,跟大家Share一下. 在 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 类中获取cell的高度: CGSize boundSize = CGSizeMake(216, CGFLOAT_MAX); cell.textLabel.text

ASP.NET中在一般处理程序中使用session的简单介绍

这篇文章介绍了ASP.NET中在一般处理程序中使用session,有需要的朋友可以参考一下 <%@ WebHandler Language="C#" Class="ChangePwd" %> using System; using System.Web; using System.Web.SessionState; public class ChangePwd : IHttpHandler, IReadOnlySessionState { public

ASP.NET知识重新梳理(二)------关于ASP.NET知识学习流程的一些理解

ASP.NET知识的学习流程我大概是这么理解的,首先我们必须打好C#的基础,若是之前没有学过C++之类的面向对象语言作为基础,还是要好好看看继承派生多态之类的区别和联系的:其次,当今的编程不仅仅只是我们在学校课堂上所学的控制台应用程序,我们还要学习winfom,WPF之类的本地窗体应用:第三,每个公司的技术方向都是不同的,但是共同的地方是都需要数据库来存储自己的数据,而且sqlserver,mysql,oracle都是大同小异的,所以如果你之前的编程学的不是很好,做一个DBA吧,入门难度也不是很

ASP.NET知识重新梳理(三)------C#基础语法

C#基础语法:1.基本语法:无论代码中是否有空格,回车符,tab字符(统称为空白字符),C#编译器都不考虑这些字符: C#字符由一系列语句组成,每个语句由一个分号来结束: C#是一个块结构的语言,所有的语句都是代码块的一部分,这些块用花括号来界定("{"和"}"): C#中的注释:标记注释/*...*/ 单行注释//... 单行注释/// (可以配置VS,在编译项目时,提取这些注释后面的文本,创建一个特殊格式的文本文件,该文件可用于 创建文档说明书): C#代码是区

ASP.NET知识重新梳理(四)------关于流程控制语句

学习C语言的时候,我们就已经学习过流程控制语句, 也就是顺序,条件,循环三种.在TIOBE编程语言排行榜单中前几位的流程控制语句貌似几乎相同,所以说一通百通嘛, 就是这个道理. 一.顺序执行语句:顾名思义,按照顺序依次执行 二.条件语句: 1.if-else语句 1.只包含if关键词,没有else的情况: if (expression)     statement1 2.包含if和else的分支的情况: if (expression)     statement1;    else     st