- 作者: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格式上加图片。。