asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

asp.net中水印的实现代码


发布日期:2021年04月03日
 
asp.net中水印的实现代码

水印是为了防止别盗用我们的图片

两种方式实现水印效果

)可以在用户上传时添加水印

a) 好处:与种方法相比用户每次读取此图片时服务器直接发送给客户就行了

b) 缺点:破坏了原始图片

)通过全局的一般处理程序当用户请求这张图片时加水印

a) 好处:原始图片没有被破坏

b) 缺点:用户每次请求时都需要对请求的图片进行加水印处理浪费的服务器的资源

代码实现第二种方式

using System;

using SystemCollectionsGeneric;

using SystemLinq;

using SystemWeb;

using SystemDrawing;

using SystemIO;

namespace BookShopWeb

{

public class WaterMark : IHttpHandler

{

private const string WATERMARK_URL = ~/Images/watermarkjpg; //水印图片

private const string DEFAULTIMAGE_URL = ~/Images/defaultjpg; //默认图片

#region IHttpHandler 成员

public bool IsReusable

{

get { return false; }

}

public void ProcessRequest(HttpContext context)

{

//contextRequestPhysicalPath //获得用户请求的文件物理路径

SystemDrawingImage Cover;

//判断请求的物理路径中是否存在文件

if (FileExists(contextRequestPhysicalPath))

{

//加载文件

Cover = ImageFromFile(contextRequestPhysicalPath);

//加载水印图片

Image watermark = ImageFromFile(contextRequestMapPath(WATERMARK_URL));

//通过书的封面得到绘图对像

Graphics g = GraphicsFromImage(Cover);

//在image上绘制水印

gDrawImage(watermark new Rectangle(CoverWidth watermarkWidth CoverHeight watermarkHeight

[csharp] view plaincopy

watermarkWidth watermarkHeight) watermarkWidth watermarkHeight GraphicsUnitPixel);

//释放画布

gDispose();

//释放水印图片

watermarkDispose();

}

else

{

//加载默认图片

Cover = ImageFromFile(contextRequestMapPath(DEFAULTIMAGE_URL));

}

//设置输出格式

contextResponseContentType = image/jpeg;

//将图片存入输出流

CoverSave(contextResponseOutputStream SystemDrawingImagingImageFormatJpeg);

CoverDispose();

contextResponseEnd();

}

#endregion

}

}

               

上一篇:了解ASP.NET中的IFRAME框架挂马

下一篇:在ASP.NET里 MVC框架添加AJAX支持