现在的位置: 首页 > 综合 > 正文

为图片添加水印(转)

2013年01月27日 ⁄ 综合 ⁄ 共 2779字 ⁄ 字号 评论关闭

利用.net中System.Drawing命名空间下的常用类我们就可以轻松的为图片添加文字水印和图片水印,并且可以自定义水印文字和水印图片的大小、位置、颜色、透明度等等!对于jpg或者png等图片,可以直接通过Graphics g= Graphics.FromImage(image)来获得Graphics对象,但对于gif图片,通过这种方法无法获得Graphics对象,解决这个问题的方法是首先根据.gif文件的大小生成一个位图作图区,然后将原图复制到作图区,做进行处理,以下是水印添加类的完整代码:

  1using System;
  2using System.Drawing;
  3using System.Drawing.Imaging;
  4using System.IO;
  5using System.Drawing.Drawing2D;
  6
  7namespace JillZhang
  8{
  9 /// <summary>
 10 /// 给图片添加水印得类得描述
 11 /// </summary>

 12 public class WaterMark
 13 {
 14  private bool _textMark=false;
 15  private bool _imgMark=false;
 16  private string _text="";
 17  private string _imgPath="";
 18  private int _markX=0;
 19  private int _markY=0;
 20  private float _transparency=1;
 21  private string _fontFamily="宋体";
 22  private Color _textColor=Color.Black;
 23  private bool _textbold=false;
 24  int[] sizes=new int[]{48,32,16,8,6,4};
 25  /// <summary>
 26  /// 实例化一个水印类
 27  /// </summary>

 28  public WaterMark()
 29  {
 30   
 31  }

 32  /// <summary>
 33  /// 初始化一个只添加文字水印得实例
 34  /// </summary>
 35  /// <param name="text">水印文字</param>
 36  /// <param name="fontFamily">文字字体</param>
 37  /// <param name="bold">是否粗体</param>
 38  /// <param name="color">字体颜色</param>
 39  /// <param name="markX">标记位置横坐标</param>
 40  /// <param name="markY">标记位置纵坐标</param>

 41  public WaterMark(string text,string fontFamily,bool bold,Color color,int markX,int markY)
 42  {
 43   this._imgMark=false;
 44   this._textMark=true;
 45   this._text=text;
 46   this._fontFamily=fontFamily;
 47   this._textbold=bold;
 48   this._textColor=color;
 49   this._markX=markX;
 50   this._markY=MarkY;
 51  }

 52  /// <summary>
 53  /// 实例化一个只添加图片水印得实例
 54  /// </summary>
 55  /// <param name="imagePath">水印图片路径</param>
 56  /// <param name="tranparence">透明度</param>
 57  /// <param name="markX">标记位置横坐标</param>
 58  /// <param name="markY">标记位置纵坐标</param>

 59  public WaterMark(string imagePath,float tranparence,int markX,int markY)
 60  {
 61   this._textMark=false;
 62   this._imgMark=true;
 63   this._imgPath=imagePath;
 64   this._markX=markX;
 65   this._markY=MarkY;
 66   this._transparency=tranparence;
 67  }

 68  /// <summary>
 69  /// 是否添加文字水印
 70  /// </summary>

 71  public bool TextMark
 72  {
 73   get{return _textMark;}
 74   set{_textMark=value;}
 75  }

 76  /// <summary>
 77  /// 是否添加图片水印
 78  /// </summary>

 79  public bool ImageMark
 80  {
 81   get{return _imgMark;}
 82   set{_imgMark=value;}  
 83  }

 84  /// <summary>
 85  /// 文字水印得内容
 86  /// </summary>

 87  public string Text
 88  {
 89   get{return _text;}
 90   set{_text=value;}
 91  }

 92  /// <summary>
 93  /// 图片水印得图片地址
 94  /// </summary>

 95  public string ImagePath
 96  {
 97   get{return _imgPath;}
 98   set{_imgPath=value;}
 99  }

100  /// <summary>
101  /// 添加水印位置得横坐标
102  /// </summary>

103  public int MarkX
104  

抱歉!评论已关闭.