您的位置:首页 > 其它

一个制作水印的方法

2014-04-21 19:08 267 查看
//方法作用:生成水印图片 

//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格式上加图片。。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: