代码改变世界

给图片加水印的一般处理程序

2013-06-18 21:17  ARMdong  阅读(218)  评论(0编辑  收藏  举报

项目中我们会经常用到给网站中的某些图片加上我们公司的水印,防止别人盗用我们的图片。今天分享一个简单的给图片加水印的demo。

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.IO;
using System.Web;

namespace HKSJ.Web.WaterMark
{
    /// <summary>
    /// WaterMark 的摘要说明
    /// </summary>
    public class WaterMark : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "image/jpeg";

            //图片的绝对地址
            string imageFile = context.Request.MapPath("11.jpg");

            //创建一个位图
            Bitmap bitmap = new Bitmap(imageFile);

            //创建一个画笔
            Graphics g = Graphics.FromImage(bitmap);

            //往图片上写文字
            g.DrawString("www.fx678.com", new Font("Arial", 4), new HatchBrush(HatchStyle.DarkHorizontal, Color.Yellow), 100, 200);

            //创建一个内存流
            MemoryStream stream = new MemoryStream();

            //将图片保存到内存流中
            bitmap.Save(stream, ImageFormat.Jpeg);

            //将图片以二进制流的方式输出
            context.Response.BinaryWrite(stream.ToArray());
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

图片效果:

QQ截图20130618211552