天天看點

給圖檔加上帶版權的水印

我們在網站上有些時候需要給圖檔加上帶版權的水印,.net的Graphics類可以很輕松的實作這一點。

效果圖:(圖檔最上端的那行字便是我們加上的版權水印了)

實作代碼:

給圖檔加上帶版權的水印
給圖檔加上帶版權的水印

/**//// <summary>

給圖檔加上帶版權的水印

    /// 生成帶版權水印的圖檔

給圖檔加上帶版權的水印

    /// </summary>

給圖檔加上帶版權的水印

    /// <param name="IconImg">要生成水印圖檔的檔案位址</param>

給圖檔加上帶版權的水印

    private void MakeWaterMark(string IconImg)

給圖檔加上帶版權的水印
給圖檔加上帶版權的水印
給圖檔加上帶版權的水印

{

給圖檔加上帶版權的水印

        //定義輸出位圖

給圖檔加上帶版權的水印

        Bitmap bmp = new Bitmap(640, 480);

給圖檔加上帶版權的水印

        //定義繪圖對象

給圖檔加上帶版權的水印

        Graphics g = Graphics.FromImage(bmp);

給圖檔加上帶版權的水印

        //描述繪圖矩形區域 

給圖檔加上帶版權的水印

        Rectangle newRect = new Rectangle(0, 0, 640, 480);

給圖檔加上帶版權的水印

        //設定背景色

給圖檔加上帶版權的水印

        g.FillRectangle(new SolidBrush(Color.White), newRect);

給圖檔加上帶版權的水印

        //擷取要生成水印的圖檔

給圖檔加上帶版權的水印

        Bitmap newBitmap = new Bitmap(IconImg);

給圖檔加上帶版權的水印

        g.DrawImage(newBitmap, 16, 16);

給圖檔加上帶版權的水印

        //定義水印字的字型

給圖檔加上帶版權的水印

        Font font = new Font(

給圖檔加上帶版權的水印

                               "Arial", 

給圖檔加上帶版權的水印

                               12, 

給圖檔加上帶版權的水印

                               FontStyle.Bold

給圖檔加上帶版權的水印

                            );

給圖檔加上帶版權的水印

        //定義水印字的格式刷

給圖檔加上帶版權的水印

        LinearGradientBrush brush = new LinearGradientBrush(

給圖檔加上帶版權的水印

                                                              new Rectangle(0, 0, 71, 23), 

給圖檔加上帶版權的水印

                                                              Color.Red,

給圖檔加上帶版權的水印

                                                              Color.Blue, 

給圖檔加上帶版權的水印

                                                              30f, 

給圖檔加上帶版權的水印

                                                              true

給圖檔加上帶版權的水印

                                                           );

給圖檔加上帶版權的水印

        //給照片打上水印

給圖檔加上帶版權的水印

        g.DrawString("copyright by test. " + System.DateTime.Now.ToShortDateString(), font, brush, 0, 0);

給圖檔加上帶版權的水印

        //儲存為新的輸出圖檔

給圖檔加上帶版權的水印

        System.IO.MemoryStream ms = new System.IO.MemoryStream();

給圖檔加上帶版權的水印

        bmp.Save(ms, ImageFormat.Jpeg);

給圖檔加上帶版權的水印
給圖檔加上帶版權的水印

        //輸出圖檔

給圖檔加上帶版權的水印

        Response.ClearContent();

給圖檔加上帶版權的水印

        Response.ContentType = "image/jpeg";

給圖檔加上帶版權的水印

        Response.BinaryWrite(ms.ToArray());

給圖檔加上帶版權的水印

    }

繼續閱讀