教你用.net为图片制作水印

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

        private void Button1_Clickobject sender, System.EventArgs e)
        
{
            
string filename=this.file_up.PostedFile.FileName;
            
string path;
            

            
//本水印制作不改变上传图片的文件名
            
//代码编写:阿风(小妞表跑)
    

            
//取得文件的名称
            filename=filename.Substringfilename.LastIndexOf\\)+1);

            
//对jpg图片加水印
            ifgetExtNamefilename)==jpg)
            
{
                
ifthis.rblTypes.SelectedValue==1)
                    addTextfilename);
                
else
                    addImagefilename);

            }

            
else
            
{
                
//直接上传图片
                path=HttpContext.Current.Request.PhysicalApplicationPath+images\\+filename;
                
//保存
                this.file_up.PostedFile.SaveAspath);
            }


            
this.Image1.ImageUrl=HttpContext.Current.Request.PhysicalApplicationPath+images\\+filename;

        }

两个方法:

        //取得文件名(不包括扩展名)
        private string getFileNamestring filename)
        
{
            
return filename.Removefilename.LastIndexOf.),4);
        }


        
//取得文件的扩展名
        private string getExtNamestring filename)
        
{
            
return filename.Substringfilename.LastIndexOf.)+1);
        }

加文字水印:

        private void addTextstring filename)
        
{
            
string str;
            
string path;
            
string filename1,extname;

            
//取得文件名(不包括扩展名)
            filename1=getFileNamefilename);
            
//取得文件的扩展名
            extname=getExtNamefilename);

            
//取得上传后的文件路径
            path=HttpContext.Current.Request.PhysicalApplicationPath+images\\+filename1+_temp.+extname;
            
//上传图片
            this.file_up.PostedFile.SaveAspath);

            System.Drawing.Image image
=System.Drawing.Image.FromFilepath);

            System.Drawing.Graphics g
=System.Drawing.Graphics.FromImageimage);

            
//将图片绘制到graphics中
            g.DrawImageimage,0,0,image.Width,image.Height);
            
//设置文字的属性
            System.Drawing.Font f=new FontVerdana,10);
            
//判断图片的大小,如果图片过小,不写文字
            ifimage.Width>=250)
                
//在此设定在图片上所加的文字
                str=小妞表跑  制作;
            
else
                str
=“”;
            
int x,y;
            
//写的文字的起始位置,x,y坐标
            x=image.Widthint)str.Length*15);
            y
=image.Height20;
            
//设置字体的颜色
            System.Drawing.Brush b=new SolidBrushColor.White);
            
//写字
            g.DrawStringstr,f,b,x,y);
            
//释放graphics
            g.Dispose);

            
//确定新图片的文件路径
            string newpath=HttpContext.Current.Request.PhysicalApplicationPath+images\\+filename;
            
//保存写上字的图片
            image.Savenewpath);
            
//释放image
            image.Dispose);
            
//删除没加水印的图片,记得一定要放在image释放之后,否则无法删除
            System.IO.File.Deletepath);
        }
加图片水印:

        private void addImagestring filename)
        
{
            
string path;
            
string logo_path;
            
string filename1,extname;

            
//取得文件名(不包括扩展名)
            filename1=getFileNamefilename);
            
//取得文件的扩展名
            extname=getExtNamefilename);

            
//取得上传后的文件路径
            path=HttpContext.Current.Request.PhysicalApplicationPath+images\\+filename1+_temp.+extname;
            
//上传图片
            this.file_up.PostedFile.SaveAspath);

            
//上传文件的临时位置
            path=HttpContext.Current.Request.PhysicalApplicationPath+images\\+filename1+_temp.+extname;
            
//图标文件的位置
            logo_path=HttpContext.Current.Request.PhysicalApplicationPath+images\\logo.gif;
            
            System.Drawing.Image image
=System.Drawing.Image.FromFilepath);
            
            System.Drawing.Image copyImage
=System.Drawing.Image.FromFilelogo_path);
            
            System.Drawing.Graphics g
=System.Drawing.Graphics.FromImageimage);
            
            
//将水印打印到上传图片上去
            g.DrawImagecopyImage,new Rectangleimage.WidthcopyImage.Width5,image.HeightcopyImage.Height5,copyImage.Width,copyImage.Height),0,0,copyImage.Width,copyImage.Height,System.Drawing.GraphicsUnit.Pixel);
            
            g.Dispose);

            
//确定新图片的文件路径
            string newpath=HttpContext.Current.Request.PhysicalApplicationPath+images\\+filename;
            
//保存写上字的图片
            image.Savenewpath);
            
//释放image
            image.Dispose);
            
//删除没加水印的图片,记得一定要放在image释放之后,否则无法删除
            System.IO.File.Deletepath);
        }

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注