当前位置:编程学习 > asp >>

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

using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
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; 
using System.Drawing; 
public partial class slt_Default : System.Web.UI.Page 

    protected void Page_Load(object sender, EventArgs e) 
    { 
    } 
    protected void bt_upload_Click(object sender, EventArgs e) 
    { 
        //检查上传文件的格式是否有效  
        if (this.UploadFile.PostedFile.ContentType.ToLower().IndexOf("image") < 0) 
        { 
            Response.Write("上传图片格式无效!"); 
            return; 
        } 
        //生成原图  
        Byte[] oFileByte = new byte[this.UploadFile.PostedFile.ContentLength]; 
        System.IO.Stream oStream = this.UploadFile.PostedFile.InputStream; 
        System.Drawing.Image oImage = System.Drawing.Image.FromStream(oStream); 
        int oWidth = oImage.Width; //原图宽度  
        int oHeight = oImage.Height; //原图高度  
        int tWidth = 100; //设置缩略图初始宽度  
        int tHeight = 100; //设置缩略图初始高度 
        //按比例计算出缩略图的宽度和高度  
        if (oWidth >= oHeight) 
        { 
            tHeight = (int)Math.Floor(Convert.ToDouble(oHeight) * (Convert.ToDouble(tWidth) / Convert.ToDouble(oWidth))); 
        } 
        else 
        { 
            tWidth = (int)Math.Floor(Convert.ToDouble(oWidth) * (Convert.ToDouble(tHeight) / Convert.ToDouble(oHeight))); 
        } 
        //生成缩略原图  
        Bitmap tImage = new Bitmap(tWidth, tHeight); 
        Graphics g = Graphics.FromImage(tImage); 
        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; //设置高质量插值法  
        g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;//设置高质量,低速度呈现平滑程度  
        g.Clear(Color.Transparent); //清空画布并以透明背景色填充  
        g.DrawImage(oImage, new Rectangle(0, 0, tWidth, tHeight), new Rectangle(0, 0, oWidth, oHeight), GraphicsUnit.Pixel); 
        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"; //保存原图的物理路径  
        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"; //保存缩略图的物理路径 
        try 
        { 
            //以JPG格式保存图片  
            oImage.Save(oFullName, System.Drawing.Imaging.ImageFormat.Jpeg); 
            tImage.Save(tFullName, System.Drawing.Imaging.ImageFormat.Jpeg); 
        } 
        catch (Exception ex) 
        { 
            throw ex; 
        } 
        finally 
        { 
            //释放资源  
            oImage.Dispose(); 
            g.Dispose(); 
            tImage.Dispose(); 
        } 
    } 
 


摘自 fengyarongaa
补充:Web开发 , ASP.Net ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,