C#.NET添加圖片水印

using System;using System.Drawing;using System.Drawing.Drawing2D;using System.Drawing.Imaging;using System.IO;namespace Pub.Class{    ///<summary>/// 添加水印類 只支持添加圖片水印    ///</summary>publicclass Watermark    {        #region 私有成員
        privatestring modifyImagePath=null;  privatestring drawedImagePath=null;  privateint rightSpace;  privateint bottoamSpace;  privateint lucencyPercent=70;  privatestring outPath=null;        #endregion#region 構(gòu)造器
        ///<summary>/// 構(gòu)造函數(shù)        ///</summary>public Watermark() { }        #endregion#region 屬性
        ///<summary>/// 獲取或設(shè)置要修改的圖像路徑  ///</summary>publicstring ModifyImagePath  {   get{returnthis.modifyImagePath;}   set{this.modifyImagePath=value;}  }  ///<summary>/// 獲取或設(shè)置在畫的圖片路徑(水印圖片)  ///</summary>publicstring DrawedImagePath  {   get{returnthis.drawedImagePath;}   set{this.drawedImagePath=value;}  }  ///<summary>/// 獲取或設(shè)置水印在修改圖片中的右邊距  ///</summary>publicint RightSpace  {   get{returnthis.rightSpace;}   set{this.rightSpace=value;}  }  ///<summary>/// 獲取或設(shè)置水印在修改圖片中距底部的高度  ///</summary>publicint BottoamSpace  {   get{returnthis.bottoamSpace;}   set{this.bottoamSpace=value;}  }  ///<summary>/// 獲取或設(shè)置要繪制水印的透明度,注意是原來圖片透明度的百分比  ///</summary>publicint LucencyPercent  {   get{returnthis.lucencyPercent;}   set { if(value>=0&&value<=100) this.lucencyPercent=value; }  }  ///<summary>/// 獲取或設(shè)置要輸出圖像的路徑  ///</summary>publicstring OutPath  {   get{returnthis.outPath;}   set{this.outPath=value;}        }        #endregion#region 開始繪制水印 DrawImage
        ///<summary>/// 開始繪制水印  ///</summary>///<example>///<code>///     Watermark wm = new Watermark();        ///     wm.DrawedImagePath= Server.MapPath("") + "/upfile/" + "backlogo.gif";        ///     wm.ModifyImagePath=path;         ///     wm.RightSpace=184;        ///     wm.BottoamSpace=81;        ///     wm.LucencyPercent=50;        ///     wm.OutPath=Server.MapPath("") + "/upfile/" + fileName + "_new" + extension;        ///     wm.DrawImage();        //////     //保存加水印過后的圖片,刪除原始圖片         ///     mFileName=fileName + "_new" + extension;        ///     if(File.Exists(path)) {  File.Delete(path); }         ///</code>///</example>publicvoid DrawImage()  {   Image modifyImage=null;   Image drawedImage=null;   Graphics g=null;   try {     modifyImage=Image.FromFile(this.ModifyImagePath);//建立圖形對(duì)象
    drawedImage=Image.FromFile(this.DrawedImagePath);    g=Graphics.FromImage(modifyImage);        int x=modifyImage.Width-this.rightSpace;//獲取要繪制圖形坐標(biāo)int y=modifyImage.Height-this.BottoamSpace;        float[][] matrixItems ={//設(shè)置顏色矩陣newfloat[] {1, 0, 0, 0, 0},            newfloat[] {0, 1, 0, 0, 0},            newfloat[] {0, 0, 1, 0, 0},            newfloat[] {0, 0, 0, (float)this.LucencyPercent/100f, 0},            newfloat[] {0, 0, 0, 0, 1}};     ColorMatrix colorMatrix = new ColorMatrix(matrixItems);    ImageAttributes imgAttr=new ImageAttributes();    imgAttr.SetColorMatrix(colorMatrix,ColorMatrixFlag.Default,ColorAdjustType.Bitmap);        g.DrawImage(//繪制陰影圖像     drawedImage,     new Rectangle(x,y,drawedImage.Width,drawedImage.Height),     0,0,drawedImage.Width,drawedImage.Height,     GraphicsUnit.Pixel,imgAttr);        string[] allowImageType={".jpg",".gif",".png",".bmp",".tiff",".wmf",".ico"};//保存文件
    FileInfo file=new FileInfo(this.ModifyImagePath);    ImageFormat p_w_picpathType=ImageFormat.Gif;    switch(file.Extension.ToLower()) {     case".jpg": p_w_picpathType=ImageFormat.Jpeg; break;     case".gif": p_w_picpathType=ImageFormat.Gif; break;     case".png": p_w_picpathType=ImageFormat.Png; break;     case".bmp": p_w_picpathType=ImageFormat.Bmp; break;     case".tif": p_w_picpathType=ImageFormat.Tiff; break;     case".wmf": p_w_picpathType=ImageFormat.Wmf; break;     case".ico": p_w_picpathType=ImageFormat.Icon; break;     default: break;    }    MemoryStream ms=new MemoryStream();    modifyImage.Save(ms,p_w_picpathType);    byte[] imgData=ms.ToArray();    modifyImage.Dispose();    drawedImage.Dispose();    g.Dispose();    FileStream fs=null;    if(this.OutPath==null || this.OutPath=="") {     File.Delete(this.ModifyImagePath);     fs=new FileStream(this.ModifyImagePath,FileMode.Create,FileAccess.Write);    } else {     fs=new FileStream(this.OutPath,FileMode.Create,FileAccess.Write);    }    if(fs!=null) {     fs.Write(imgData,0,imgData.Length);     fs.Close();    }   } finally {    try {     drawedImage.Dispose();     modifyImage.Dispose();     g.Dispose();    } catch{}   }  }        #endregion    }}
 

當(dāng)前名稱:C#.NET添加圖片水印
轉(zhuǎn)載注明:http://bm7419.com/article8/jdchop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google全網(wǎng)營(yíng)銷推廣、網(wǎng)站內(nèi)鏈、App設(shè)計(jì)網(wǎng)站制作、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名