asp.net上传图片并同时生成缩略图

  1. using System; 
  2. using System.Data; 
  3. using System.Configuration; 
  4. using System.Collections; 
  5. using System.Web; 
  6. using System.Web.Security; 
  7. using System.Web.UI; 
  8. using System.Web.UI.WebControls; 
  9. using System.Web.UI.WebControls.WebParts; 
  10. using System.Web.UI.HtmlControls; 
  11. using System.Drawing; 
  12. public partial class slt_Default : System.Web.UI.Page 
  13.     protected void Page_Load(object sender, EventArgs e) 
  14.     { 
  15.     } 
  16.     protected void bt_upload_Click(object sender, EventArgs e) 
  17.     { 
  18.         //检查上传文件的格式是否有效  
  19.         if (this.UploadFile.PostedFile.ContentType.ToLower().IndexOf("image") < 0) 
  20.         { 
  21.             Response.Write("上传图片格式无效!"); 
  22.             return
  23.         } 
  24.         //生成原图  
  25.         Byte[] oFileByte = new byte[this.UploadFile.PostedFile.ContentLength]; 
  26.         System.IO.Stream oStream = this.UploadFile.PostedFile.InputStream; 
  27.         System.Drawing.Image oImage = System.Drawing.Image.FromStream(oStream); 
  28.         int oWidth = oImage.Width; //原图宽度  
  29.         int oHeight = oImage.Height; //原图高度  
  30.         int tWidth = 100; //设置缩略图初始宽度  
  31.         int tHeight = 100; //设置缩略图初始高度 
  32.         //按比例计算出缩略图的宽度和高度  
  33.         if (oWidth >= oHeight) 
  34.         { 
  35.             tHeight = (int)Math.Floor(Convert.ToDouble(oHeight) * (Convert.ToDouble(tWidth) / Convert.ToDouble(oWidth))); 
  36.         } 
  37.         else 
  38.         { 
  39.             tWidth = (int)Math.Floor(Convert.ToDouble(oWidth) * (Convert.ToDouble(tHeight) / Convert.ToDouble(oHeight)));
  40.         } 
  41.         //生成缩略原图  
  42.         Bitmap tImage = new Bitmap(tWidth, tHeight); 
  43.         Graphics g = Graphics.FromImage(tImage); 
  44.         g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; //设置高质量插值法  
  45.         g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;//设置高质量,低速度呈现平滑程度  
  46.         g.Clear(Color.Transparent); //清空画布并以透明背景色填充  
  47.         g.DrawImage(oImage, new Rectangle(0, 0, tWidth, tHeight), new Rectangle(0, 0, oWidth, oHeight), GraphicsUnit.Pixel); 
  48.         string oFullName = Server.MapPath(".") + "/image/" + "o" + DateTime.Now.ToShortDateString().Replace("-", "") + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + ".jpg"; //保存原图的物理路径  
  49.         string tFullName = Server.MapPath(".") + "/image/" + "t" + DateTime.Now.ToShortDateString().Replace("-", "") + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + ".jpg"; //保存缩略图的物理路径 
  50.         try 
  51.         { 
  52.             //以JPG格式保存图片  
  53.             oImage.Save(oFullName, System.Drawing.Imaging.ImageFormat.Jpeg); 
  54.             tImage.Save(tFullName, System.Drawing.Imaging.ImageFormat.Jpeg); 
  55.         } 
  56.         catch (Exception ex) 
  57.         { 
  58.             throw ex; 
  59.         } 
  60.         finally 
  61.         { 
  62.             //释放资源  
  63.             oImage.Dispose(); 
  64.             g.Dispose(); 
  65.             tImage.Dispose(); 
  66.         } 
  67.     } 
  68.  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值