.NET开发

本类阅读TOP10

·NHibernate快速指南(翻译)
·vs.net 2005中文版下载地址收藏
·【小技巧】一个判断session是否过期的小技巧
·VB/ASP 调用 SQL Server 的存储过程
·?dos下编译.net程序找不到csc.exe文件
·通过Web Services上传和下载文件
·学习笔记(补)《.NET框架程序设计(修订版)》--目录
·VB.NET实现DirectDraw9 (2) 动画
·VB.NET实现DirectDraw9 (1) 托管的DDraw
·建站框架规范书之——文件命名

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
一个制作水印的方法

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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




相关文章

相关软件