一个制作水印的方法

2005-06-16   作者:佚名   来源:本站整理   浏览:11484   评论:0
//方法作用:生成水印图片
 //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);    
    }
   }  
   g.Save();
   sImage.Save(saveFile);
   result = true;
  }
  catch
  {
   result = false;
  }
  return result;
 }

但这个不能在GIF格式上加图片。。
Tags:责任编辑:cvery
顶一下(65)
95.59%

网友评论已有 0 人参与评论  

请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!
  验证码:     登录   注册