zoukankan      html  css  js  c++  java
  • 获取图片缩略图

     protected void btnUpLoadFile_Click(object sender, EventArgs e)
        {
            //判断上传文件格式是否有效
            if (UpLoadFile.PostedFile.ContentType.ToLower().IndexOf("image") < 0)
            {
                string strAlert = "<script language = 'javascript'>alert('文件格式错误');</script>";
                Response.Write(strAlert);
                return;
            }

            //生成原图
            Stream oStream = UpLoadFile.PostedFile.InputStream;
            System.Drawing.Image oImage = System.Drawing.Image.FromStream(oStream);

            //获取原图的Height和Width
            int oHeight = oImage.Height;
            int oWidth = oImage.Width;

            //设置初始时缩略图的Height和Width
            int tHeight = 100;
            int tWidth = 100;

            //按照原始比例计算所略图的Height和Width
            if (oWidth > oHeight)
            {
                tHeight = (int)Math.Floor(Convert.ToDouble(oHeight)/Convert.ToDouble(oWidth)*tWidth);
            }
            else
            {
                tWidth = (int)Math.Floor(Convert.ToDouble(oWidth)/Convert.ToDouble(oHeight)*Convert.ToDouble(tHeight));
            }

            //生成缩略图
            Bitmap tImage = new Bitmap(tWidth, tHeight);
            Graphics graphic = Graphics.FromImage(tImage);
            graphic.InterpolationMode = InterpolationMode.High;//设置高质量插值法
            graphic.SmoothingMode = SmoothingMode.HighQuality; ;//设置高质量,低速度呈现平滑程度
            graphic.Clear(Color.Transparent);
            graphic.DrawImage(oImage, new Rectangle(0, 0, tWidth, tHeight), new Rectangle(0, 0, oWidth, oHeight),
                              GraphicsUnit.Pixel);
            string oFullName = Server.MapPath(".") + "/" + "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(".") + "/" + "t" + DateTime.Now.ToShortDateString().Replace("-", "")
                               + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString()
                               + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + ".jpg";//缩略图的物理路径
            try
            {
                oImage.Save(oFullName, System.Drawing.Imaging.ImageFormat.Jpeg);
                tImage.Save(tFullName, System.Drawing.Imaging.ImageFormat.Jpeg);
            }
            catch(Exception ex)
            {
                string strEx = "<script language = 'javascript'>alert(" + ex.ToString() + ")</script>";
                Response.Write(strEx);
            }
            finally
            {
                oImage.Dispose();
                tImage.Dispose();
                graphic.Dispose();

            }
        }

  • 相关阅读:
    51nod 1412 AVL树的种类
    bzoj1093 [ZJOI2007]最大半联通子图 缩点 + 拓扑序
    bzoj1116 [POI2008]CLO 边双联通分量
    luoguP4366 [Code+#4]最短路 最短路
    51nod1821 最优集合 贪心
    51nod2000 四边形分割平面 规律题
    luoguP3250 [HNOI2016]网络 树链剖分 + 堆
    [Luogu5162]WD与积木(多项式求逆)
    [Luogu5161]WD与数列(后缀数组/后缀自动机+线段树合并)
    [Luogu5106]dkw的lcm
  • 原文地址:https://www.cnblogs.com/zijinguang/p/883214.html
Copyright © 2011-2022 走看看