跳到主要內容

Water Mark on Page or GridView

  <body style="background-image:url(GetWatermark.ashx)">
    <form id="form1" runat="server">
    <div>
     <img src="GetWatermark.ashx" />
     <asp:Image ID="ff" runat="server" ImageUrl="~/GetWatermark.ashx" />
    </div>
    </form>
</body>

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="False" BackImageUrl="~/GetWatermark.ashx" >

using System;
using System.Web;
using System.Drawing;
using System.Drawing.Design;
using System.Globalization;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Web.SessionState;
public class GetWatermark : IHttpHandler, IRequiresSessionState
{
    /*
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        context.Response.Write("Hello World");
    }

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

    public void ProcessRequest(HttpContext context)
    {
        const string DefaultFontName = @"細明體";
        //int useWay = 0;
        //如果傳進來的是2,就使用黑色,不然就用淡色
        //int.TryParse(context.Request["way"] as string, out useWay);
        //設定輸出為gif檔
        context.Response.ContentType = "image/gif";
        int fontSize = 30;
        int bmpWidth = 500;
        int bmpHeight = 400;
        string watermarks = UserProfile.UserName + "    " + UserProfile.UserID;
        //string watermarks = "fuck your ..";
      
        //建立Bitmap
        Bitmap bmp = new Bitmap(bmpWidth, bmpHeight);
        //設定使用者及時間,並將逗號改成換行符號
        //string watermarks = string.Format(watermark, context.Session["User_Name"] as string,
        //DateTime.Now.ToString("yyyy/MM/dd", CultureInfo.InvariantCulture),
        //DateTime.Now.ToString("HH:mm:ss")).Replace(",", Environment.NewLine);
        //建立Graphics
        Graphics canvas = Graphics.FromImage(bmp);
        //設定透明的Brush
        SolidBrush watermarkBrush;
        //if (useWay == 2)
        //{
            //如果是用蓋到畫面上的方式,Color就直接用黑色
            watermarkBrush = new SolidBrush(Color.Black);
        //}
        //else
        //{
            //如果是用底圖的話,Color就用淡一點
            //watermarkBrush = new SolidBrush(Color.FromArgb(128, 221, 221, 255));
            watermarkBrush = new SolidBrush(Color.LightGray);
        //}
        //設定底圖為白色
        SolidBrush whiteBrush = new SolidBrush(Color.White);
        //將底圖畫成白色
        canvas.FillRectangle(whiteBrush, 0, 0, bmp.Width, bmp.Height);
        //因為要由下往上畫,所以將原點設定成下方
        canvas.TranslateTransform(50, bmpHeight - 200);
        //設定浮水印的字型及大小
        Font f = new Font(DefaultFontName, fontSize, FontStyle.Bold);
        //設定旋轉的角度為330
        canvas.RotateTransform(330);
        //將浮水印畫上去
        canvas.DrawString(watermarks, f, watermarkBrush, fontSize, 0, StringFormat.GenericTypographic);
        //將圖檔輸出去
        bmp.Save(context.Response.OutputStream, ImageFormat.Gif);

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