RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:9:30-18:00
你可能遇到了下面的问题
关闭右侧工具栏
一个制作水印的方法
  • 作者:zhaozj
  • 发表时间:2020-12-23 11:01
  • 来源:未知

http://blog.csdn.net/zhgroup/archive/2004/08/20/80296.aspx 

//方法作用:生成水印图片  //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格式上加图片。。