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();

            }
        }

  • 相关阅读:
    从零打造树莓派智能助手(一)——让树莓派说话
    以np.concatenate为主题,谈谈numpy数组按维度合并的问题
    树莓派apt报错:E: 'Release' 这个值对 APT::Default-Release 是无效的,因为在源里找不到这样的发行
    我遇到的一些Git问题汇编
    在Mac平台用Sublime编辑器使用Git并连接github
    LeetCode108——Convert Sorted Array to Binary Search Tree
    LeetCode122——Best Time to Buy and Sell Stock II
    LeetCode686——Repeated String Match
    Python爬虫 — 百度翻译
    HTTP 协议
  • 原文地址:https://www.cnblogs.com/zijinguang/p/883214.html
Copyright © 2011-2022 走看看