asp.net2.0按比例生成图片的缩略图_[Asp.Net教程]
1、建立Default.aspx文件和文件夹upFile

2、Default..aspx代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
无标题页
3、Default..aspx.cs代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
System.Drawing.Image image, newimage; //定义image类的对象
protected string imagePath; //图片路径
protected string imageType; //图片类型
protected string imageName; //图片名称
//提供一个回调方法,用于确定Image对象在执行生成缩略图操作时何时提前取消执行
//如果此方法确定 GetThumbnailImage 方法应提前停止执行,则返回 true;否则返回 false
System.Drawing.Image.GetThumbnailImageAbort callb = null;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnUp_Click(object sender, EventArgs e)
{
string mPath;
if ("" != upImage.PostedFile.FileName)
{
imagePath = upImage.PostedFile.FileName;
//取得图片类型
imageType = imagePath.Substring(imagePath.LastIndexOf(".") + 1);
//取得图片名称
imageName = imagePath.Substring(imagePath.LastIndexOf("\") + 1);
//判断是否是JPG或者GIF图片,这里只是举个例子,并不一定必须是这两种图片
if ("JPG"!= imageType.ToUpper() && "GIF" != imageType.ToUpper())
{
Response.Write("");
return;
}
else
{
try
{
//建立虚拟路径
mPath = Server.MapPath("upFile");
//保存到虚拟路径
upImage.PostedFile.SaveAs(mPath + "\" + imageName);
//显示原图
imageSource.ImageUrl = "upFile/" + imageName;
//为上传的图片建立引用
image = System.Drawing.Image.FromFile(mPath + "\" + imageName);
int smallW = 100;//小图片宽
int smallH = smallW * image.Height / image.Width;//小图片高
//生成缩略图
newimage = image.GetThumbnailImage(smallW, smallH, callb, new System.IntPtr());
//把缩略图保存到指定的虚拟路径
newimage.Save(Server.MapPath("upFile") + "\small" + imageName);
//释放image对象占用的资源
image.Dispose();
//释放newimage对象的资源
newimage.Dispose();
//显示缩略图
imageSmall.ImageUrl = "upFile/" + "small" + imageName;
}
catch
{
Response.Write("上传失败!");
}
}
}
}
}
4:运行效果如下:
