工具简介

名称:Image Passive Compresser

介绍:监视图片目录图片文件变化根据过滤条件自动进行压缩的工具

版本:1.0

系统要求:Windows 64位操作系统 + .NET FrameWork 4.5或以上

Logo(瞎鸡儿画):

工具下载

放在微云

链接:https://share.weiyun.com/5JKxBzj 密码:xhkaad

源码在GitHub(时间紧迫,未经整理):https://github.com/Vinlic/Image-Passive-Compresser

功能介绍

最基础用法:使用案例

1.目前支持 jpg png gif 三种主流图片格式的压缩,gif只支持无损压缩。

2.支持以下过滤功能

  • 图片类型:jpg png gif 三种可添加删除,符合类型将被压缩,选择类型后点击添加或删除。
  • 图片体积:图片体积大于或等于N的图片将被压缩,使用此功能请勾选 图片体积过滤
  • 图片名称:添加或删除正则表达式来匹配符合的图片来压缩,点击 添加正则表达式 添加。
  • 排除图片:添加或删除排除的文件或文件夹即可在监视时略过这部分路径,点击 文件夹文件添加。

过滤条件优先级:图片类型排除图片图片名称图片体积,使用此优先级对图片进行过滤再压缩

3.允许滑动设置 压缩率 和勾选 无损压缩,压缩率越高图片体积越小,同样的由于是有损压缩,质量也将随之降级,如果希望保持图片质量请勾选无损压缩,工具将尽量无损失的压缩图片。

4.监听子文件夹:默认不监听子文件夹,如果确保子文件夹不会一次性添加大量图片文件则可以勾选,因为一次性大量图片(如超过1000张)可能导致监听器缓存溢出,导致部分图片无法及时压缩,使用此功能请勾选 监听子文件夹

5.勾选 压缩图片覆盖原图片 ,当 监视文件夹 路径与 输出文件夹 路径一致时,工具将直接对原图片进行压缩而不备份,如果你希望保留原图片这种情况下请不要开启它。

6.勾选 启动后先压缩文件夹内所有图片 ,假设你已经将图片放在准备监视的文件夹了,如果你希望工具启动后将 监视文件夹 内的所有符合过滤条件的图片压缩,请在启动前勾选此选项。需要注意的是,此项和 压缩图片覆盖原图片 一起勾选时需谨慎使用,因为监视和输出文件夹路径一致时将导致原图片被覆盖,如果你希望在这种情况下保留原图片,请不要两项同时勾选。

7.进入 帮助与日志 可查看运行日志。

8.几乎所有操作(如启用过滤功能或添加过滤项)都支持在压缩器运行期间启用,无需中途停用压缩器。

使用案例

假设当前存在 E:\testE:\test\output 两个文件夹,现在我们需要实现:如果有图片进入 E:\test 则将这些图片压缩输出到 E:\test\output 文件夹,按以下流程操作:

点击上下 浏览 按钮选择 监视文件夹输出文件夹,两个文件夹路径允许一样,但要注意覆盖问题(默认不覆盖,解决方案参照功能介绍

点击 启动压缩器 启动后就可以向 监视文件夹 放置图片文件了,符合条件的图片(默认接受jpg、png格式图片,更多请查看下面)将被压缩,通过调节 压缩率 滑块使用不同压缩率对图片进行压缩。

效果通过以下动态图展示。

关于工具

前几天受朋友启发,来了一个灵感:做一个监控指定文件夹图片新增、重命名操作,并自动压缩图片。虽然现在网络传输速越来越快,流量也开始免费,但压缩还是有必要的。

刚好写博客也有这样的需求,经常会遇到一些图片体积比较大,这样的图片放上网页显示并不合适,所以一般都会进行压缩再使用,以前压缩一般是靠批量压缩工具或者上ps处理,这次自己写一个自动压缩器试试。

这几天就搬出我很久没碰的C# WinForm,花了些心思做了出来,不得不说太久没用了确实很不顺手,在开发的时候是站在用户角度上看,所以尽量不做得太粗糙,三天时间算是勉强完工了,其实之前有更齐全功能的想法,最近有更高优先级的项目就先砍掉了那些非主要功能了,本文章截图都是使用这个工具压缩后的。

引用了开源项目 jpegoptimpngquantgifsicle,在此鸣谢。