zoukankan      html  css  js  c++  java
  • 图片压缩技术

     private string ImgComPress(string fromBase64)
            {
                Bitmap bitMap = new Bitmap(new MemoryStream(Convert.FromBase64String(fromBase64)));
                //Bitmap bitMap = new Bitmap(Server.MapPath("./1.jpg"));
                ImageCodecInfo jgpEncoder = GetEncoder(ImageFormat.Jpeg);
                System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
                EncoderParameters myEncoderParameters = new EncoderParameters(1);
                EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 80L);
                myEncoderParameters.Param[0] = myEncoderParameter;
                Bitmap newbitMap = null;
                if (bitMap.Height > 1080)
                {
                    float newWidth = ((float)bitMap.Width / bitMap.Height) * 1080;
                    newbitMap = new Bitmap(bitMap, (int)newWidth, 1080);//从指定的现有图像并使用指定的大小初始化 Bitmap 类的新实例。
                }
                using (MemoryStream ms = new MemoryStream())
                {
                    if (newbitMap != null)
                    {
                        newbitMap.Save(ms, jgpEncoder, myEncoderParameters);
                    }
                    else
                    {
                        bitMap.Save(ms, jgpEncoder, myEncoderParameters);
                        bitMap.Save(Server.MapPath("./2.jpg"));
                        bitMap.Save(Server.MapPath("./2_1.jpg"), jgpEncoder, myEncoderParameters);
                    }
                    if (ms.Length >= 1)
                    {
                        return Convert.ToBase64String(ms.GetBuffer());
                    }
                }
                return fromBase64;
            }

            private ImageCodecInfo GetEncoder(ImageFormat format)
            {
                ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
                foreach (ImageCodecInfo codec in codecs)
                {
                    if (codec.FormatID == format.Guid)
                    {
                        return codec;
                    }
                }
                return null;
            }

  • 相关阅读:
    CodeForces 1105D-暴力BFS
    POJ 1258 Agri-Net (最小生成树)
    POJ 1251 Jungle Roads (最小生成树)
    hiho 1097 最小生成树一·Prim算法 (最小生成树)
    Codeforces 544E K Balanced Teams (DP)
    Codeforces 408D Long Path (DP)
    PTA L1题目合集(更新至2019.3)
    HDOJ 3308 LCIS (线段树)
    HDOJ 1698 Just a Hook (线段树)
    HDOJ 4267 A Simple Problem with Integers (线段树)
  • 原文地址:https://www.cnblogs.com/tx720/p/5607114.html
Copyright © 2011-2022 走看看