zoukankan      html  css  js  c++  java
  • .net压缩图片质量(附demo)

           private void CompressedImage(string fileName, long quality)
            {
                FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
                Byte[] bytePic = new Byte[fs.Length];
                fs.Read(bytePic, 0, bytePic.Length);
                MemoryStream stream = new MemoryStream(bytePic);
                Bitmap bmp = (Bitmap)Image.FromStream(stream);
                ImageCodecInfo myImageCodecInfo = ImageCodecInfo.GetImageEncoders()[1];  //如果下面遍历没有这种图片格式,就默认为jpeg
                ImageCodecInfo[] encoders = ImageCodecInfo.GetImageEncoders();
                for (int j = 0; j < encoders.Length; j++)
                {
                    if (encoders[j].MimeType == "image/jpeg")
                    {
                        myImageCodecInfo = encoders[j];
                        break;
                    }
                }
                System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;  //要操作的是质量
                EncoderParameters myEncoderParameters = new EncoderParameters(1);      //一个成员,只处理质量
                EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, quality);    //0为最差质量,100为最好,注意是long类型
                myEncoderParameters.Param[0] = myEncoderParameter;
                Size s = new Size(bmp.Width, bmp.Height);
                Bitmap newBmp = new Bitmap(bmp, s);
                MemoryStream ms = new MemoryStream();
                newBmp.Save(ms, myImageCodecInfo, myEncoderParameters);    //压缩后的流保存到ms
                //从流中还原图片
                Image image = Image.FromStream(ms);
                string curDirectory = Path.GetDirectoryName(Assembly.GetCallingAssembly().GetModules()[0].FullyQualifiedName) + "\";
                //保存图片
                image.Save(curDirectory + "pic.jpg");
                fs.Dispose();
                stream.Dispose();
                newBmp.Dispose();
                ms.Dispose();
            }

     demo

  • 相关阅读:
    Safe Path(bfs+一维数组存图)
    一维树状数组入门
    Ancient Go(简单DFS)
    Sudoku(简单DFS)
    Strategic game(树形DP入门)
    多线程源码分析
    Navicat premium12的破解方法,无需注册码
    MySQL和Oracle的区别
    java Web项目中什么场景中会用到java多线程?
    TCP协议三次握手、四次断开 过程分析
  • 原文地址:https://www.cnblogs.com/hezhihao/p/5175571.html
Copyright © 2011-2022 走看看