一个制作水印的方法
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格式上加图片。。
//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格式上加图片。。
相关文章推荐
- 一个制作水印的方法
- 用flash制作水印的一个方法
- 使用.NET REACTOR使用方法,制作软件许可证,做一个简单的许可证系统步骤
- 制作一个链表的方法
- 告诉你一个去除PDF文件水印简单快速的方法
- [前端] 1、分享一个基于博客园的标签云制作方法
- 介绍一个超初级的linux后门制作方法
- C#给图片加水印标记(可设置透明度)比上一篇好点,但只有一个方法
- 推荐一个很好的学习网页制作的方法(太全了)
- 一个轻松制作和处理矢量图的工具和方法, 希望对大家能够有帮助
- 求一个电子书制作的好方法
- 分享一个制作JQ插件方法的文章
- [导入]找到了一个自动去除PDF水印的方法
- 笨方法学Python习题45—你来制作一个游戏
- [Z]一个轻松制作和处理矢量图的工具和方法
- 一个命令去掉Win7系统桌面右下角出现测试模式7600水印的方法
- WPF TextBox水印效果制作方法详解
- ffmpeg 制作水印方法
- 如何制作一个 https 网站?IIS配置HTTPS服务的方法
- 一个像素表格边框的制作方法