简单的上传图片并生成缩略图

页面:

  
    
< form id = " form1 " runat = " server " >
< div >
< asp:FileUpload ID = " FileUpload1 " runat = " server " />
< asp:Button ID = " Button1 " runat = " server " Text = " UP " OnClick = " Button1_Click " />
</ div >
</ form >

后台:  

  
    
     protected void Button1_Click( object sender, EventArgs e)
{
UpImageFile(FileUpload1);
}

protected void UpImageFile(FileUpload fileLoad)
{
if (fileLoad.HasFile)
{
string fileType = fileLoad.PostedFile.ContentType;
if (fileType == " image/bmp " || fileType == " image/pjpeg " || fileType == " image/gif " || fileType == " image/png " )
{
string loadPath = fileLoad.PostedFile.FileName; // 等待上传文件的本地路径
System.Drawing.Image img = System.Drawing.Image.FromFile(loadPath);
if (img.Height > 100 || img.Width > 100 )
{
FileInfo info
= new FileInfo(loadPath);
string fName = info.Name; // 获取原文件名
string fileName = DateTime.Now.ToString( " yyMMddhhmmss " ) + fName; // 在文件名中加入时间
string imgPath = Server.MapPath( " /UpFile/OrImages/ " ) + fileName; // 原文件路径
string thPath = Server.MapPath( " /UpFile/ThImages/ " ) + fileName; // 缩略图路径
fileLoad.SaveAs(imgPath); // 保存原图片
MakeThumnail(imgPath, thPath); // 生成缩略图
}
else
{
// 图片尺寸太小
}
}
else
{
// 文件格式不对
}

}
}

protected void MakeThumnail( string orPath, string thPath)
{
System.Drawing.Image img
= System.Drawing.Image.FromFile(orPath);
int width = 100 ; // 设置缩略图的宽为100
int height = img.Height * width / img.Width; // 缩略图的高按比例缩小
System.Drawing.Image bitmap = new System.Drawing.Bitmap(width, height); // 创建一个空位图
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap); // 创建画板
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; // 设定为高质量插值
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; // 指定高质量低速度呈现
g.Clear(Color.Transparent);
g.DrawImage(img,
new Rectangle( 0 , 0 , width, height));
try
{
bitmap.Save(thPath, System.Drawing.Imaging.ImageFormat.Jpeg);
// 以JPG格式保存图片
}
catch (System.Exception e)
{
throw e;
}
finally
{
img.Dispose();
bitmap.Dispose();
g.Dispose();
}
}

你可能感兴趣的:(缩略图)