等待冰柠檬 发表于 2010-9-8 14:00

iis7.0配置映射实现水印效果【IHttpHandler接口】

代码:
[code][color=#0000FF]using[/color] System;
[color=#0000FF]using[/color] System.Collections.Generic;
[color=#0000FF]using[/color] System.Web;
[color=#0000FF]using[/color] System.IO;
[color=#0000FF]using[/color] System.Drawing;
[color=#0000FF]using[/color] System.Drawing.Imaging;

[color=#808080]///[/color][color=#008000] [/color][color=#808080]<summary>[/color][color=#008000]
[/color][color=#808080]///[/color][color=#008000]水印的摘要说明
[/color][color=#808080]///[/color][color=#008000] [/color][color=#808080]</summary>[/color][color=#808080]
[/color][color=#0000FF]public[/color] [color=#0000FF]class[/color] ShuiYin:IHttpHandler
{
    [color=#0000FF]public[/color] ShuiYin()
    {
        [color=#008000]//[/color][color=#008000]
        [/color][color=#008000]//[/color][color=#008000]TODO: 在此处添加构造函数逻辑
        [/color][color=#008000]//
[/color]    }

    [color=#0000FF]public[/color] [color=#0000FF]bool[/color] IsReusable
    {
        [color=#0000FF]get[/color] { [color=#0000FF]return[/color] [color=#0000FF]true[/color]; }
       [color=#008000]//[/color][color=#008000] get { throw new NotImplementedException(); }[/color][color=#008000]
[/color]    }

    [color=#0000FF]public[/color] [color=#0000FF]void[/color] ProcessRequest(HttpContext context)
    {
        [color=#0000FF]string[/color] imageFile = context.Request.PhysicalPath;
        Image image = [color=#0000FF]null[/color];
        [color=#0000FF]if[/color] (File.Exists(imageFile))
        {
            [color=#0000FF]string[/color] text = [color=#800000]"[/color][color=#800000]本图片来自朝辉电脑[/color][color=#800000]"[/color];
            Font font = [color=#0000FF]new[/color] Font([color=#800000]"[/color][color=#800000]宋体[/color][color=#800000]"[/color], [color=#800080]12[/color]);
            image = Image.FromFile(imageFile);
            Graphics g = Graphics.FromImage(image);
            SizeF size = g.MeasureString(text, font);
            [color=#0000FF]if[/color] (size.Width > image.Width || size.Height > image.Height)
            {
                context.Response.Write([color=#800000]"[/color][color=#800000]文字太大了[/color][color=#800000]"[/color]);
            }
            [color=#0000FF]else[/color]
            {
                Brush brush = Brushes.Blue;
                g.DrawString(text, font, brush, image.Width - size.Width, image.Height - size.Height);
            }
        }
        [color=#0000FF]else[/color]
        {
            imageFile = context.Server.MapPath([color=#800000]"[/color][color=#800000]018.jpg[/color][color=#800000]"[/color]);
            image = Image.FromFile(imageFile);
        }
        image.Save(context.Response.OutputStream, ImageFormat.Jpeg);
        [color=#008000]//[/color][color=#008000]throw new NotImplementedException();[/color][color=#008000]
[/color]    }
}[/code]
目录:红色圈起来的
[attach]52988[/attach]

说明:直接在vs里面运行的时候可以实现,但是在iis下就不能,但是知道要配置映射,可以试了还是不可以,希望高手帮忙下 iis7.0环境


页: [1]

编程论坛