为在自己的网站上传的图片加水印好像成了一种风尚,成为防止图片盗用图片和做宣传网站的一种方式。
现在就教你如何制作这些水印的、
这里有两种为加水印的形式,一种是加文字水印,一种是加图片水印。
文字水印如这个图(右下角的那行字):
图片水印样式(右下角的那个图表)
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 Font“Verdana“,10);
//判断图片的大小,如果图片过小,不写文字
ifimage.Width>=250)
//在此设定在图片上所加的文字
str=“小妞表跑 制作“;
else
str=“”;
int x,y;
//写的文字的起始位置,x,y坐标
x=image.Width–int)str.Length*15);
y=image.Height–20;
//设置字体的颜色
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.Width–copyImage.Width–5,image.Height–copyImage.Height–5,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);
}