博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.net压缩图片质量(附demo)
阅读量:4954 次
发布时间:2019-06-12

本文共 1846 字,大约阅读时间需要 6 分钟。

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

 

转载于:https://www.cnblogs.com/hezhihao/p/5175571.html

你可能感兴趣的文章
综合练习:词频统计
查看>>
BZOJ1026: [SCOI2009]windy数
查看>>
ASP.NET应用程序和ASP.NET网站所共有的文件: App_Browsers 等
查看>>
ASP.NET杂货店实战视频 VS2010+SQL2008 三层架构设计开发讲解
查看>>
样板操作数
查看>>
64位UBUNTU下安装adobe reader后无法启动
查看>>
动态缓存技术之CSI,SSI,ESI
查看>>
mac 上将.pem文件转为.pub文件
查看>>
整理下心情
查看>>
iTextSharp带中文转换出来的PDF文档显示乱码
查看>>
阶乘因式分解(一)
查看>>
qt学习记录-----3.信号与槽的问题
查看>>
『ORACLE』 内置约束(11g)
查看>>
Vue--学习过程中遇到的坑
查看>>
组件:slot插槽
查看>>
.net压缩图片质量(附demo)
查看>>
equals和==的区别
查看>>
Android6.0指纹识别开发
查看>>
java反射机制剖析(二)— Class Loader
查看>>
走进C++程序世界------异常处理
查看>>