C#小工具

您所在的位置:网站首页 如何把图片压缩到10mb以下的大小 C#小工具

C#小工具

2023-08-12 16:16| 来源: 网络整理| 查看: 265

目录

简单的介绍

图像压缩类

简单的介绍

某宝店铺上传图片时,要求单张图片大小不能大于3M。而现在的手机像素越来越高,一张图片的字节数也越来越大。

在遇到需要大量上传图片时,那可真是苦不堪言呀。

为了满足本人懒惰的性格,就研究了一下可以根据所给的文件夹目录,自动查找所有的图片,并根据指定的压缩百分比和大小,批量压缩,并一比一存放在指定文件夹内。如图:

快压缩结束了

 

压缩完成弹出提示框

 

两个目录下的文件夹对比

 

图片大小对比

 

文件数量对比

 

图像压缩类 class Compression { private static ImageCodecInfo GetEncoderInfo(String mimeType) { int j; ImageCodecInfo[] encoders; encoders = ImageCodecInfo.GetImageEncoders(); for (j = 0; j < encoders.Length; ++j) { if (encoders[j].MimeType == mimeType) return encoders[j]; } return null; } /// /// 通过质量压缩图片 /// /// 传入的Bitmap对象 /// 压缩后的Stream对象 /// 压缩等级,0到100,0 最差质量,100 最佳 public static void Compress(Bitmap iSource, Stream cStream, long level) { ImageCodecInfo myImageCodecInfo; Encoder myEncoder; EncoderParameter myEncoderParameter; EncoderParameters myEncoderParameters; // Get an ImageCodecInfo object that represents the JPEG codec. myImageCodecInfo = GetEncoderInfo("image/jpeg"); // Create an Encoder object based on the GUID // for the Quality parameter category. myEncoder = Encoder.Quality; // 创建一个 EncoderParameters 对象. // 一个 EncoderParameters 对象有一组EncoderParameter对象 // 在下面的代码中,EncoderParameters数组中只有一个EncoderParameter对象 myEncoderParameters = new EncoderParameters(1); // 用给定的Level值压缩图片 myEncoderParameter = new EncoderParameter(myEncoder, level); myEncoderParameters.Param[0] = myEncoderParameter; iSource.Save(cStream, myImageCodecInfo, myEncoderParameters); } /// /// 通过递归的方式,以起点level 和 终点 图像字节长度length 对图像进行压缩 /// /// 传入的Bitmap对象 /// 压缩后的图片保存路径 /// 压缩等级,0到100,0 最差质量,100 最佳 /// 终点长度 单位字节; 1024字节 = 1kb ; 1024kb = 1MB public static void Compress(Bitmap srcBitMap, string destFile, long level,long length) { Stream s = new FileStream(destFile, FileMode.Create); Compress(srcBitMap, s, level); if (s.Length > length) { s.Close(); if(File.Exists(destFile)) { File.Delete(destFile); } Compress(srcBitMap, destFile, --level, length); } s.Close(); srcBitMap.Dispose(); } }

【有觉得需要其他压缩功能可以发表评论,本人能力够的话可以做到这个小工具里,其他功能也会持续更新】



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3