您的位置:首页 >> 编程开发 >> .NET >> 其它 >> 正文
其它 RSS
 

一个制作水印的方法

http://www.rdxx.com 04年08月20日 12:12 Blog 我要投稿

关键词: 水印 , 方法

  //方法作用:生成水印图片
  //sourceFile:要生成水印的图片文件
  //WaterMarkFile:存放水印的图片文件
  //saveFile:存放水印的图片文件
  public static bool MakeWaterImage(string sourceFile,string waterMarkFile,string saveFile)
  {
   bool result;
   try
   {
    //原图
    Bitmap sImage = new Bitmap(sourceFile);
    int sWidth  = sImage.Width;
    int sHeight  = sImage.Height;
    
    //水印图
    Bitmap wImage = new Bitmap(waterMarkFile);
    int wWidth  = wImage.Width;
    int wHeight  = wImage.Height;

    //make Graphics.
    Graphics g = Graphics.FromImage(sImage);
    int x; //临时变量
    int y; //监时变量
    int x1; //原图和水印图的宽度差
    int y1; //原图和水印图的高度差
    int w; //生成的水印图的宽度
    int h; //生成的水印图的高度
    int al; //alpha
    int rl; //Red
    int gl; //Green
    int bl; //Blue

    if(sWidth > wWidth)
    {
     x1 = sWidth - wWidth;
     y1 = sHeight - wHeight;
     w = wWidth;
     h = wHeight;
    }
    else
    {
     x1 = 0;
     y1 = 0;
     w = sWidth;
     h = sHeight;
    }
    //开始绘图
    for(x = 1; x < w; x++)
    {
     for(y = 1; y < h; y++)
     {
      al = wImage.GetPixel(x,y).A;
      rl = wImage.GetPixel(x,y).R;
      gl = wImage.GetPixel(x,y).G;
      bl = wImage.GetPixel(x,y).B;
      al = 70;
      
      if(rl + 25 < 255)
       rl += 25;
      if(gl + 25 < 255)
       gl += 25;
      if(bl + 25 < 255)
       bl += 25;
      g.DrawEllipse(new Pen(new SolidBrush(Color.FromArgb(al,rl,gl,bl))),x1+x,y1+y,1,1);     
     }
    }   

共2页  1 2


 
 
标签: 水印 , 方法 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved