实现水印图片
测试效果如下图:
注意左上角
创建web项目并新建HttpHandler类
如下图:
创建Images文件夹,并添加图片
编写HttpHdanler类
代码如下图:
public class TestHandler : IHttpHandler
{
//水印图片
private const string WATERMARK_URL = "~/Images/watermark.png";
//图片不存在,默认下显示图片
private const string DEFAULTIMAGE_URL = "~/Images/1.jpg";
public bool IsReusable
{
get { return false; }
}
public void ProcessRequest(HttpContext context)
{
//得到请求图片的物理路径
string imgFilePath = context.Request.MapPath(context.Request.FilePath);
//判断文件是否存在
if (File.Exists(imgFilePath))
{
//根据图片路径实例化图片对象
Image img = Image.FromFile(imgFilePath);
//实例化画布
Graphics g = Graphics.FromImage(img);
//实体化一个字体对象
Font font = new Font("宋体", 12);
//得到画刷对象,颜色为红色
Brush brush = Brushes.Red;
//得到一个点对象,表示画水印的位置
Point point = new Point(0, 0);
//画图
g.DrawString("独家制作", font, brush, point);
//设置响应类型
context.Response.ContentType = "image/jpeg";
//将画好的图片,输出到响应流
img.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
//释放资源
img.Dispose();
g.Dispose();
//结束响应
context.Response.End();
}
编写视图层前台代码
代码如下:
<div>
<img src="Images/1.jpg" />
<img src="Images/2.jpg" />
<img src="Images/3.jpg" />
</div>
如果觉得不好看可以适当的加一些css样式
最重要的一步是在配置文件里编写代码,配置文件就是,web.config文件。
需要的代码如下:
<system.webServer>
<handlers>
<add verb="*" path="Images/*.jpg" name="handler" type="_5._4.TestHandler"/>
</handlers>
</system.webServer>