循环压缩文件夹下的文件
来源:互联网 发布:汉王软件 编辑:程序博客网 时间:2024/06/05 02:00
今天做项目,由于图片太大,很占内存。于是决定压缩文件。
整理了一下代码,方便以后使用。
循环压缩文件:
foreach (var file in Directory.GetFiles(Photos)){ int qCount=50; Bitmap oImage = new Bitmap(file);//从图片文件中读取图片流 Bitmap OldImage = new Bitmap(oImage);//将图片流复制到新的图片流中 oImage.Dispose();//将原来的图片流释放,将图片文件进行解锁。 ReduceImage(OldImage, file, qCount); FileStream fs = new FileStream(file, FileMode.Open); byte[] IMGDATA = new byte[fs.Length]; BinaryReader br = new BinaryReader(fs); IMGDATA = br.ReadBytes(Convert.ToInt32(fs.Length)); //Image IDImg = Image.FromFile(file); //MemoryStream ms = new MemoryStream(); //IDImg.Save(ms, Imaging.ImageFormat.Bmp); //byte[] IMGDATA = ms.ToArray(); }
压缩的方法:
/// <summary> /// 压缩图片 /// </summary> /// <param name="iSource">图片文件</param> /// <param name="outPath">路径</param> /// <param name="flag">值越大代表图片质量越好,一般默认控制在50为最佳压缩质量</param> /// <returns></returns> public static bool ReduceImage(Image iSource, string outPath, int flag) { ImageFormat tFormat = iSource.RawFormat; EncoderParameters ep = new EncoderParameters(); long[] qy = new long[1]; qy[0] = flag; EncoderParameter eParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, qy); ep.Param[0] = eParam; try { ImageCodecInfo[] arrayICI = ImageCodecInfo.GetImageDecoders(); ImageCodecInfo jpegICIinfo = null; for (int x = 0; x < arrayICI.Length; x++) { if (arrayICI[x].FormatDescription.Equals("JPEG")) //只有JPEG是压缩的,别的好像都是放大的 { jpegICIinfo = arrayICI[x]; break; } } if (jpegICIinfo != null) iSource.Save(outPath, jpegICIinfo, ep); else iSource.Save(outPath, tFormat); return true; } catch { return false; } finally { iSource.Dispose(); } }
阅读全文
0 0
- 循环压缩文件夹下的文件
- 循环路径文件夹下的文件
- 循环读取文件夹下的文件
- linux 下压缩 自定文件夹下的所有文件
- java压缩文件夹下的所有文件和选定文件
- java压缩文件夹下的所有文件和选定文件
- thinkPHP压缩文件夹下的多个文件并下载
- java 循环读取一个指定文件夹下的所有文件
- c# 中循环遍历所有文件夹下的文件
- C#压缩文件夹及文件夹下的所有文件为zip
- perl 循环删除指定文件夹下所有满足条件的文件,不包含文件夹
- 把一个文件夹下的文件先打包成一个tar文件,然后再用gzip压缩。
- java中将一个文件夹下所有的文件压缩成一个文件
- java 把指定文件夹下的所有文件目录和文件都压缩到指定文件夹下
- Linux下的zip压缩解压缩文件夹
- java 文件和文件夹的压缩实现
- java压缩文件夹或文件的方法
- 使用 YUI Compressor 压缩文件夹下的所有js和css文件
- java7.7
- lzo安装说明
- Calendar类set()方法的“陷阱”
- 欢迎使用CSDN-markdown编辑器
- 对于Java的时间操作,有你不知道的知识点
- 循环压缩文件夹下的文件
- Androidstudio连接真机突然无法打印Logcat
- [模板][洛谷P1516]青蛙的约会(exgcd)
- php实现将base64格式图片保存在指定目录的方法
- python(二)
- jsp
- 计算数组长度
- 数位dp
- JS-Jquery 控制表单提交