ASP.net——水印

1、创建HttpHandler

先添加ASP.NET3.5应用程序

ASP.net——水印_第1张图片

添加新建项,在web中添加一般处理程序 ASP.net——水印_第2张图片

2、PicHandler.ashx源码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Drawing;
using System.IO;
namespace ASP.NET水印
{
     public class PicHandler : IHttpHandler
    {

        //图片路径
        string IMG = "~/ProductImgs/";
        //默认图片路径
        string DefaultImg = "~/ProductImgs/default.jpg";
        public void ProcessRequest(HttpContext context)
        {
            //获取要添加图片的路径
            string path = context.Request.MapPath(IMG + context.Request.QueryString["id"].ToString() + ".jpg");
            Image image;
            //判断图片是否存在
            if (File.Exists(path))
            {
                //加载图片文件
                image = Image.FromFile(path);
                //定义画布
                Graphics graphics = Graphics.FromImage(image);
                //加水印
                graphics.DrawString("劍笑", new Font("微软雅黑", 12), Brushes.Red, image.Width - 50, image.Height - 15);
                //释放画布
                graphics.Dispose();

            }
            else
            {
                //如果图片不存在的话则显示默认图片
                image = Image.FromFile(DefaultImg);
            }
            //设置输出的图片格式
            context.Response.ContentType = "image/jepg";
            //将修改的图片存入输出流
            image.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
            //释放图片
            image.Dispose();
            //终止输出
            context.Response.End();
        }

3、修改图片路径

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Pic.aspx.cs" Inherits="ASP.NET水印._Default" %>  
  
  
  
  
  
  
  
      
  
  
    

4.使用全局Handler方式实现数字水印

        Default.aspx页面代码:

    
    
  Handler1.ashx页面:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Drawing;
using System.IO;
namespace ASP.NET水印
{
    /// 
    /// PicCoverHandler 的摘要说明
    /// 
    public class PicCoverHandler : IHttpHandler
    {

       
        string DefaultImg = "~/ProductImgs/default.jpg";
        public void ProcessRequest(HttpContext context)
        {
            
            string path = context.Request.PhysicalPath;
            Image image;
          
            if (File.Exists(path))
            {
                
                image = Image.FromFile(path);
                
                Graphics graphics = Graphics.FromImage(image);
                //加水印
                graphics.DrawString("劍笑", new Font("黑体", 12), Brushes.Blue, image.Width - 50, image.Height - 15);
                //释放画布
                graphics.Dispose();

            }
            else
            {
                //如果图片不存在的话则显示默认图片
                image = Image.FromFile(DefaultImg);
            }
            //设置输出的图片格式
            context.Response.ContentType = "image/jepg";
            
            image.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
            
            image.Dispose();
            
            context.Response.End();
        }
  Web页面配置ASP.net——水印_第3张图片
显示效果:
ASP.net——水印_第4张图片
版权声明:https://blog.csdn.net/fateeric/article/details/79925295


你可能感兴趣的:(ASP.NET)