为在自己的网站上传的图片加水印好像成了一种风尚,成为防止图片盗用图片和做宣传网站的一种方式。
现在就教你如何制作这些水印的、
这里有两种为加水印的形式,一种是加文字水印,一种是加图片水印。
文字水印如这个图(右下角的那行字):
教你用.net为图片制作水印-冯金伟博客园
图片水印样式(右下角的那个图表)
303574.jpg

教你用.net为图片制作水印-冯金伟博客园        private void Button1_Click(object sender, System.EventArgs e)
教你用.net为图片制作水印-冯金伟博客园教你用.net为图片制作水印-冯金伟博客园        
教你用.net为图片制作水印-冯金伟博客园{
教你用.net为图片制作水印-冯金伟博客园            
string filename=this.file_up.PostedFile.FileName;
教你用.net为图片制作水印-冯金伟博客园            
string path;
教你用.net为图片制作水印-冯金伟博客园            
教你用.net为图片制作水印-冯金伟博客园
教你用.net为图片制作水印-冯金伟博客园            
//本水印制作不改变上传图片的文件名
教你用.net为图片制作水印-冯金伟博客园            
//代码编写:阿风(小妞表跑)
教你用.net为图片制作水印-冯金伟博客园    
教你用.net为图片制作水印-冯金伟博客园
教你用.net为图片制作水印-冯金伟博客园            
//取得文件的名称
教你用.net为图片制作水印-冯金伟博客园
            filename=filename.Substring(filename.LastIndexOf(\\)+1);
教你用.net为图片制作水印-冯金伟博客园
教你用.net为图片制作水印-冯金伟博客园            
//对jpg图片加水印
教你用.net为图片制作水印-冯金伟博客园
            if(getExtName(filename)==jpg)
教你用.net为图片制作水印-冯金伟博客园教你用.net为图片制作水印-冯金伟博客园            
教你用.net为图片制作水印-冯金伟博客园{
教你用.net为图片制作水印-冯金伟博客园                
if(this.rblTypes.SelectedValue==1)
教你用.net为图片制作水印-冯金伟博客园                    addText(filename);
教你用.net为图片制作水印-冯金伟博客园                
else
教你用.net为图片制作水印-冯金伟博客园                    addImage(filename);
教你用.net为图片制作水印-冯金伟博客园
教你用.net为图片制作水印-冯金伟博客园            }

教你用.net为图片制作水印-冯金伟博客园            
else
教你用.net为图片制作水印-冯金伟博客园教你用.net为图片制作水印-冯金伟博客园            
教你用.net为图片制作水印-冯金伟博客园{
教你用.net为图片制作水印-冯金伟博客园                
//直接上传图片
教你用.net为图片制作水印-冯金伟博客园
                path=HttpContext.Current.Request.PhysicalApplicationPath+images\\+filename;
教你用.net为图片制作水印-冯金伟博客园                
//保存
教你用.net为图片制作水印-冯金伟博客园
                this.file_up.PostedFile.SaveAs(path);
教你用.net为图片制作水印-冯金伟博客园            }

教你用.net为图片制作水印-冯金伟博客园
教你用.net为图片制作水印-冯金伟博客园            
this.Image1.ImageUrl=HttpContext.Current.Request.PhysicalApplicationPath+images\\+filename;
教你用.net为图片制作水印-冯金伟博客园
        }

两个方法:

教你用.net为图片制作水印-冯金伟博客园        //取得文件名(不包括扩展名)
教你用.net为图片制作水印-冯金伟博客园
        private string getFileName(string filename)
教你用.net为图片制作水印-冯金伟博客园教你用.net为图片制作水印-冯金伟博客园        
教你用.net为图片制作水印-冯金伟博客园{
教你用.net为图片制作水印-冯金伟博客园            
return filename.Remove(filename.LastIndexOf(.),4);
教你用.net为图片制作水印-冯金伟博客园        }

教你用.net为图片制作水印-冯金伟博客园
教你用.net为图片制作水印-冯金伟博客园        
//取得文件的扩展名
教你用.net为图片制作水印-冯金伟博客园
        private string getExtName(string filename)
教你用.net为图片制作水印-冯金伟博客园教你用.net为图片制作水印-冯金伟博客园        
教你用.net为图片制作水印-冯金伟博客园{
教你用.net为图片制作水印-冯金伟博客园            
return filename.Substring(filename.LastIndexOf(.)+1);
        }

加文字水印:

教你用.net为图片制作水印-冯金伟博客园        private void addText(string filename)
教你用.net为图片制作水印-冯金伟博客园教你用.net为图片制作水印-冯金伟博客园        
教你用.net为图片制作水印-冯金伟博客园{
教你用.net为图片制作水印-冯金伟博客园            
string str;
教你用.net为图片制作水印-冯金伟博客园            
string path;
教你用.net为图片制作水印-冯金伟博客园            
string filename1,extname;
教你用.net为图片制作水印-冯金伟博客园
教你用.net为图片制作水印-冯金伟博客园            
//取得文件名(不包括扩展名)
教你用.net为图片制作水印-冯金伟博客园
            filename1=getFileName(filename);
教你用.net为图片制作水印-冯金伟博客园            
//取得文件的扩展名
教你用.net为图片制作水印-冯金伟博客园
            extname=getExtName(filename);
教你用.net为图片制作水印-冯金伟博客园
教你用.net为图片制作水印-冯金伟博客园            
//取得上传后的文件路径
教你用.net为图片制作水印-冯金伟博客园
            path=HttpContext.Current.Request.PhysicalApplicationPath+images\\+filename1+_temp.+extname;
教你用.net为图片制作水印-冯金伟博客园            
//上传图片
教你用.net为图片制作水印-冯金伟博客园
            this.file_up.PostedFile.SaveAs(path);
教你用.net为图片制作水印-冯金伟博客园
教你用.net为图片制作水印-冯金伟博客园            System.Drawing.Image image
=System.Drawing.Image.FromFile(path);
教你用.net为图片制作水印-冯金伟博客园
教你用.net为图片制作水印-冯金伟博客园            System.Drawing.Graphics g
=System.Drawing.Graphics.FromImage(image);
教你用.net为图片制作水印-冯金伟博客园
教你用.net为图片制作水印-冯金伟博客园            
//将图片绘制到graphics中
教你用.net为图片制作水印-冯金伟博客园
            g.DrawImage(image,0,0,image.Width,image.Height);
教你用.net为图片制作水印-冯金伟博客园            
//设置文字的属性
教你用.net为图片制作水印-冯金伟博客园
            System.Drawing.Font f=new Font(Verdana,10);
教你用.net为图片制作水印-冯金伟博客园            
//判断图片的大小,如果图片过小,不写文字
教你用.net为图片制作水印-冯金伟博客园
            if(image.Width>=250)
教你用.net为图片制作水印-冯金伟博客园                
//在此设定在图片上所加的文字
教你用.net为图片制作水印-冯金伟博客园
                str=小妞表跑  制作;
教你用.net为图片制作水印-冯金伟博客园            
else
教你用.net为图片制作水印-冯金伟博客园                str
=“”;
教你用.net为图片制作水印-冯金伟博客园            
int x,y;
教你用.net为图片制作水印-冯金伟博客园            
//写的文字的起始位置,x,y坐标
教你用.net为图片制作水印-冯金伟博客园
            x=image.Width(int)(str.Length*15);
教你用.net为图片制作水印-冯金伟博客园            y
=image.Height20;
教你用.net为图片制作水印-冯金伟博客园            
//设置字体的颜色
教你用.net为图片制作水印-冯金伟博客园
            System.Drawing.Brush b=new SolidBrush(Color.White);
教你用.net为图片制作水印-冯金伟博客园            
//写字
教你用.net为图片制作水印-冯金伟博客园
            g.DrawString(str,f,b,x,y);
教你用.net为图片制作水印-冯金伟博客园            
//释放graphics
教你用.net为图片制作水印-冯金伟博客园
            g.Dispose();
教你用.net为图片制作水印-冯金伟博客园
教你用.net为图片制作水印-冯金伟博客园            
//确定新图片的文件路径
教你用.net为图片制作水印-冯金伟博客园
            string newpath=HttpContext.Current.Request.PhysicalApplicationPath+images\\+filename;
教你用.net为图片制作水印-冯金伟博客园            
//保存写上字的图片
教你用.net为图片制作水印-冯金伟博客园
            image.Save(newpath);
教你用.net为图片制作水印-冯金伟博客园            
//释放image
教你用.net为图片制作水印-冯金伟博客园
            image.Dispose();
教你用.net为图片制作水印-冯金伟博客园            
//删除没加水印的图片,记得一定要放在image释放之后,否则无法删除
教你用.net为图片制作水印-冯金伟博客园
            System.IO.File.Delete(path);
        }
加图片水印:

教你用.net为图片制作水印-冯金伟博客园        private void addImage(string filename)
教你用.net为图片制作水印-冯金伟博客园教你用.net为图片制作水印-冯金伟博客园        
教你用.net为图片制作水印-冯金伟博客园{
教你用.net为图片制作水印-冯金伟博客园            
string path;
教你用.net为图片制作水印-冯金伟博客园            
string logo_path;
教你用.net为图片制作水印-冯金伟博客园            
string filename1,extname;
教你用.net为图片制作水印-冯金伟博客园
教你用.net为图片制作水印-冯金伟博客园            
//取得文件名(不包括扩展名)
教你用.net为图片制作水印-冯金伟博客园
            filename1=getFileName(filename);
教你用.net为图片制作水印-冯金伟博客园            
//取得文件的扩展名
教你用.net为图片制作水印-冯金伟博客园
            extname=getExtName(filename);
教你用.net为图片制作水印-冯金伟博客园
教你用.net为图片制作水印-冯金伟博客园            
//取得上传后的文件路径
教你用.net为图片制作水印-冯金伟博客园
            path=HttpContext.Current.Request.PhysicalApplicationPath+images\\+filename1+_temp.+extname;
教你用.net为图片制作水印-冯金伟博客园            
//上传图片
教你用.net为图片制作水印-冯金伟博客园
            this.file_up.PostedFile.SaveAs(path);
教你用.net为图片制作水印-冯金伟博客园
教你用.net为图片制作水印-冯金伟博客园            
//上传文件的临时位置
教你用.net为图片制作水印-冯金伟博客园
            path=HttpContext.Current.Request.PhysicalApplicationPath+images\\+filename1+_temp.+extname;
教你用.net为图片制作水印-冯金伟博客园            
//图标文件的位置
教你用.net为图片制作水印-冯金伟博客园
            logo_path=HttpContext.Current.Request.PhysicalApplicationPath+images\\logo.gif;
教你用.net为图片制作水印-冯金伟博客园            
教你用.net为图片制作水印-冯金伟博客园            System.Drawing.Image image
=System.Drawing.Image.FromFile(path);
教你用.net为图片制作水印-冯金伟博客园            
教你用.net为图片制作水印-冯金伟博客园            System.Drawing.Image copyImage
=System.Drawing.Image.FromFile(logo_path);
教你用.net为图片制作水印-冯金伟博客园            
教你用.net为图片制作水印-冯金伟博客园            System.Drawing.Graphics g
=System.Drawing.Graphics.FromImage(image);
教你用.net为图片制作水印-冯金伟博客园            
教你用.net为图片制作水印-冯金伟博客园            
//将水印打印到上传图片上去
教你用.net为图片制作水印-冯金伟博客园
            g.DrawImage(copyImage,new Rectangle(image.WidthcopyImage.Width5,image.HeightcopyImage.Height5,copyImage.Width,copyImage.Height),0,0,copyImage.Width,copyImage.Height,System.Drawing.GraphicsUnit.Pixel);
教你用.net为图片制作水印-冯金伟博客园            
教你用.net为图片制作水印-冯金伟博客园            g.Dispose();
教你用.net为图片制作水印-冯金伟博客园
教你用.net为图片制作水印-冯金伟博客园            
//确定新图片的文件路径
教你用.net为图片制作水印-冯金伟博客园
            string newpath=HttpContext.Current.Request.PhysicalApplicationPath+images\\+filename;
教你用.net为图片制作水印-冯金伟博客园            
//保存写上字的图片
教你用.net为图片制作水印-冯金伟博客园
            image.Save(newpath);
教你用.net为图片制作水印-冯金伟博客园            
//释放image
教你用.net为图片制作水印-冯金伟博客园
            image.Dispose();
教你用.net为图片制作水印-冯金伟博客园            
//删除没加水印的图片,记得一定要放在image释放之后,否则无法删除
教你用.net为图片制作水印-冯金伟博客园
            System.IO.File.Delete(path);
        }