T5利用HttpHandler技术为HR员工档案照片加数字水印_第1页
T5利用HttpHandler技术为HR员工档案照片加数字水印_第2页
T5利用HttpHandler技术为HR员工档案照片加数字水印_第3页
T5利用HttpHandler技术为HR员工档案照片加数字水印_第4页
T5利用HttpHandler技术为HR员工档案照片加数字水印_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北风网项目培训第50讲:利用HttpHandler技术为HR员工档案照片加数字水印讲师:风舞烟TheOneHR人力资源管理系统本章目标了解HttpHandler实现原理利用HttpHandler为图片加数字水印数字水印在图片上增加站点标识,能够很好地保护著作权,防止他人盗用图片。数字水印的实现资源准备水印图片默认图片采用图片形式的水印,需要一个水印图片。当图片封面图片不存在时,显示该图片,此时就不需要在图片上绘制水印。数字水印的实现实现方式分析直接编辑每张图片编程实现批量编辑图片在显示图片时,动态添加数字水印效果需要大量的人力。节省人力,效率高,但原始图片丢失了。使用HttpHandlerHttpModule和HttpHandlerHttpHandler处理程序Http运行时Http模块Http模块Http模块Http请求响应请求的终点最终的处理可能经历多个模块,层次“过滤”原路返回HttpHandler的使用创建HttpHandler程序添加新项选择“一般处理程序”查看运行结果演示:创建HttpHandler程序关键代码<%@WebHandlerLanguage="C#"Class="Handler"%>usingSystem;usingSystem.Web;publicclassHandler:IHttpHandler{

publicvoidProcessRequest(HttpContextcontext){

context.Response.ContentType="text/plain";

context.Response.Write("HelloWorld");}

publicboolIsReusable{get{returnfalse;}}}实现IsReusable属性实现IHttpHandler接口实现ProcessRequest方法ProcessRequest是HTTP请求的最终处理HttpContext

对象,提供对用于为HTTP请求提供服务的内部服务器对象(如Request、Response、Session和Server)的引用。指定Handler方式实现数字水印.ashx文件的方式实现数字水印思路分析获得URL传的参数fileno;根据fileno查找相对应的员工照片;将数字水印图片“粘贴”在员工照片的右下角;修改程序的输出类型,并将组合出的新图片输出。修改页面中访问该图片的路径。指定Handler方式实现数字水印动态输出图片创建HttpHandler程序编写处理代码修改HR员工档案照片路径查看效果演示示例:动态处理输出图片

关键代码程序输出图片代码代码<%@WebHandlerLanguage="C#"Class="BookCover"%>......publicclassBookCover:IHttpHandler{publicvoidProcessRequest(HttpContextcontext){

......

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

Cover.Save(context.Response.OutputStream,

System.Drawing.Imaging.ImageFormat.Jpeg);

Cover.Dispose(

);

context.Response.End(

);

} ......}设置输出格式输出图片文件

将图片保存在输出流

g.DrawImage(watermark,newRectangle(Cover.Width-watermark.Width,Cover.Height-watermark.Height,watermark.Width,watermark.Height),0,0,watermark.Width,watermark.Height,GraphicsUnit.Pixel);全局Handler方式实现数字水印使用.ashx方式,需要修改所有访问封面图片的路径,太麻烦。能否直接访问图片,达到添加数字水印的效果?文件夹中的封面原图通过站点访问该文件就显示水印效果全局Handler方式实现数字水印实现思路分析修改配置信息,将所有对.JPG内容的访问转到HttpHandler处理程序获得访问请求,得到用户访问的图片路径;根据请求的路径,查找相对应的封面图片;将数字水印图片“粘贴”在封面图片的右下角;修改程序的输出类型,并将组合出的新图片输出。全局Handler方式实现数字水印实现数字水印:web.config中注册类,设置路径编写实现接口的类使用开发服务器访问员工档案图片演示示例:动态处理输出图片

配置配置语法verb:谓词GET、POST、FTP等。path:访问路径,此处表示所有针对“Images/BookCovers/*.jpg”路径的的请求都将交给CoverHandler类进行处理。type:指定的处理程序(类)。<httpHandlers>

<addverb="*"path="Images/Photo/*.jpg"type="handler"/></httpHandlers>指定类名,新建的类URL路径关键代码publicclassCoverHandler:IHttpHandler{publicvoidProcessRequest(HttpContextcontext){System.Drawing.ImageCover;

if(File.Exists(context.Request.PhysicalPath)){

Cover=Image.FromFile(context.Request.PhysicalPath);

......}else{

......}}

......}处理代码与上个例子一致

获得针对封面的请求路径

PhysicalPath可用于获得HTTP请求所对应的物理路径注意事项在IIS上使用该方式要做其他处理开发服务器仅提供最简单的Web服务器功能,它不对请求的内容做任何处理,而是直接将所有的请求转交给ASP.NET处理;IIS功能比较完善,可以独立处理一些访问请求,比如.html、.jpg等的访问不会提交给ASP.NET来处理aspnet_isapi.dllIIS请求.jpg.aspx等提交ISAPI处理处理结果返回配置扩展名演示配置扩展名打开IIS虚拟目录的属性项在目录栏中选则“配置”添加扩展名演示示例:自定义扩展名过程选择配置添加新扩展名

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论