频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

一个制作水印的方法

来源: 作者: 出处:巧巧读书 2007-12-12 进入讨论组
  • 关 键 词:

  //方法作用:生成水印图片
//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格式上加图片。。本U R L:http://www.qqread.com/dotnet/c239523.html进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章