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

  • 相关阅读:
    Mysql加锁过程详解(1)-基本知识
    Mysql加锁过程详解(5)-innodb 多版本并发控制原理详解
    java笔试题-1
    通过六个题目彻底掌握String笔试面试题
    JDBC实现往MySQL插入百万级数据
    打印变量地址-0x%08x
    cin中的注意事项
    猎豹网校C++ Primer学习笔记
    物体检测相关——学习笔记
    teraflop级、TFLOPS、TOPS
  • 原文地址:https://www.cnblogs.com/hezhihao/p/5175571.html
Copyright © 2011-2022 走看看