当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > asp.net生成缩略图及给原始图加水印的函数

ASP.NET
在ASP.NET中自动给URL加上超级链接
在ASP.NET中怎么用Session判断用户是否登录?
C#是一种新的语言?或者仅仅只是Java
在网页中动态的生成一个图片
C#实现的18位身份证格式验证算法
Asp.net中的页面乱码的问题
ASP.NET中利用存储过程实现模糊查询
ASP.NET 2.0中构造个性化网页
.net教程:ASP.NET GridView的分页功能
ASP.Net中无刷新执行Session身份验证
用事实说话!AJAX应用程序开发七宗罪
迁移你的Web页面到ASP.NET AJAX 1.0
SQL Server 2005中插入XML数据方法
编程技巧 用Asp.net动态生成html页面
在asp.net 2.0 中使用的存储过程解析
用 asp.net 动态设置 WebService 引用
新手入门之ASP.NET2.0中的缓存技术解析
asp.net编程中实现 MD5 加密
ASP.NET备份恢复SqlServer数据库
Asp.Net输出数据到EXCEL表格中

ASP.NET 中的 asp.net生成缩略图及给原始图加水印的函数


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 67 ::
收藏到网摘: n/a

在编写程序时大家经常遇到给图片生成缩略图以及给原始图片添加水印的问题,下面这个函数便是在.NET中给图片生成缩略图及给原始图片添加水印的。


usingSystem.IO;
usingSystem.Drawing.Imaging;

privatevoidButton1_ServerClick(objectsender,System.EventArgse)
{
Graphicsg=null;
System.Drawing.Imageupimage=null;
System.Drawing.Imagethumimg=null;
System.Drawing.Imagesimage=null;
Bitmapoutputfile=null;
try
{
stringextension=Path.GetExtension(File1.PostedFile.FileName).ToUpper();
stringfilename=DateTime.Now.ToString("yyyyMMddhhmmss");
stringsmallpath=Server.MapPath(".")+"/smallimg/";
stringbigpath=Server.MapPath(".")+"/bigimg/";
intwidth,height,newwidth,newheight;

System.Drawing.Image.GetThumbnailImageAbortcallb=newSystem.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
if(!Directory.Exists(smallpath))
Directory.CreateDirectory(smallpath);
if(!Directory.Exists(bigpath))
Directory.CreateDirectory(bigpath);

Streamupimgfile=File1.PostedFile.InputStream;
stringsimagefile=Server.MapPath("a8logo.jpg");//要加水印的文件
simage=System.Drawing.Image.FromFile(simagefile);
upimage=System.Drawing.Image.FromStream(upimgfile);//上传的图片

width=upimage.Width;
height=upimage.Height;
if(width>height)
{
newwidth=200;
newheight=(int)((double)height/(double)width*(double)newwidth);
}
else
{
newheight=200;
newwidth=(int)((double)width/(double)height*(double)newheight);
}
thumimg=upimage.GetThumbnailImage(newwidth,newheight,callb,IntPtr.Zero);
outputfile=newBitmap(upimage);
g=Graphics.FromImage(outputfile);
g.DrawImage(simage,newRectangle(upimage.Width-simage.Width,upimage.Height-simage.Height,upimage.Width,upimage.Height),0,0,upimage.Width,upimage.Height,GraphicsUnit.Pixel);

stringnewpath=bigpath+filename+extension;//原始图路径
stringthumpath=smallpath+filename+extension;//缩略图路径
outputfile.Save(newpath);
thumimg.Save(thumpath);
outputfile.Dispose();

}
catch(Exceptionex)
{
throwex;
}
finally
{
if(g!=null)
g.Dispose();
if(thumimg!=null)
thumimg.Dispose();
if(upimage!=null)
upimage.Dispose();
if(simage!=null)
simage.Dispose();
}
}
publicboolThumbnailCallback()
{
returnfalse;
}