如何使用 Squoosh 命令行批量压缩图片

先说明:windows 上无法批量压缩,原因:

https://github.com/GoogleChromeLabs/squoosh/issues/973

因为 squoosh-cli 暂不支持 windows 上的通配符。这么一个小问题,给我整崩溃了。

完整过程如下

先在 (https://squoosh.app) 上测试一下图片压缩的设置:

image-20220922011515991

一切就绪后,点击右侧菜单 Edit 右边的控制台小图标,将命令复制下来,应该类似于这样:

npx @squoosh/cli --resize '{"enabled":true,"width":970,"height":970,"method":"lanczos3","fitMethod":"stretch","premultiply":true,"linearRGB":true}' --mozjpeg '{"quality":75,"baseline":false,"arithmetic":false,"progressive":true,"optimize_coding":true,"smoothing":0,"color_space":3,"quant_table":3,"trellis_multipass":false,"trellis_opt_zero":false,"trellis_opt_table":false,"trellis_loops":1,"auto_subsample":true,"chroma_subsample":2,"separate_chroma_quality":false,"chroma_quality":75}'

如果想要先安装再使用,可以先用以下命令:

npm i -g @squoosh/cli

然后就可以用 squoosh-cli 命令了,将上面的命令改写一下:

squoosh-cli --resize '{"enabled":true,"width":970,"height":970,"method":"lanczos3","fitMethod":"stretch","premultiply":true,"linearRGB":true}' --mozjpeg '{"quality":75,"baseline":false,"arithmetic":false,"progressive":true,"optimize_coding":true,"smoothing":0,"color_space":3,"quant_table":3,"trellis_multipass":false,"trellis_opt_zero":false,"trellis_opt_table":false,"trellis_loops":1,"auto_subsample":true,"chroma_subsample":2,"separate_chroma_quality":false,"chroma_quality":75}'

还有需要改动的地方就是:目标文件夹,目标文件,长宽

squoosh-cli --resize '{"enabled":true,"width":970,"height":970,"method":"lanczos3","fitMethod":"stretch","premultiply":true,"linearRGB":true}' --mozjpeg '{"quality":75,"baseline":false,"arithmetic":false,"progressive":true,"optimize_coding":true,"smoothing":0,"color_space":3,"quant_table":3,"trellis_multipass":false,"trellis_opt_zero":false,"trellis_opt_table":false,"trellis_loops":1,"auto_subsample":true,"chroma_subsample":2,"separate_chroma_quality":false,"chroma_quality":75}' -d "[destinationfolder]" "*.png"

-d 参数后写上输出的文件夹,后面再跟需要压缩的图片,可以使用通配符(windows不行!),然后前面 --resize 的参数里长宽可以只保留一个参数,就不会压缩图片长宽比了:

squoosh-cli --resize '{"enabled":true,"width":500,"method":"lanczos3","fitMethod":"stretch","premultiply":true,"linearRGB":true}' --mozjpeg '{"quality":75,"baseline":false,"arithmetic":false,"progressive":true,"optimize_coding":true,"smoothing":0,"color_space":3,"quant_table":3,"trellis_multipass":false,"trellis_opt_zero":false,"trellis_opt_table":false,"trellis_loops":1,"auto_subsample":true,"chroma_subsample":2,"separate_chroma_quality":false,"chroma_quality":75}' -d "[destinationfolder]" "*.png"

然后就可以舒适地观看转换过程:

image-20220922012116526

### 推荐的在线图片压缩工具 对于需要高效、便捷地压缩图片的需求,以下是几款值得推荐的在线图片压缩工具: #### 1. **Squoosh** Squoosh 是由谷歌开发的一款开源在线图片压缩工具。其特点是支持多种现代图像格式(如 WebP 和 AVIF),并提供直观的质量调整选项[^1]。 除了通过网页界面单张处理图片之外,还提供了命令行接口 (CLI),适合批量处理大量图片的任务。 ```bash npx @squoosh/cli --resize '{"width":800,"height":600}' input.jpg output.webp ``` 上述代码展示了如何利用 Squoosh 的 CLI 功能来调整图片分辨率并将其转换为 WebP 格式。 --- #### 2. **Imagify** Imagify 原本是一款专为 WordPress 用户设计的插件,但现在也推出了独立的在线服务[^2]。该工具有以下几个优点: - 提供高质量的无损和有损压缩模式; - 支持 PNG、JPEG 和 GIF 文件; - 免费版虽然有限制(每张图片最大 2MB,优化后保存时间仅限 24 小时),但对于日常需求已足够强大。 需要注意的是,由于免费版本存在一定的限制条件,在大规模项目中可能需要考虑升级至付费计划。 --- #### 3. **本地化安全型工具** 某些情况下,用户可能会担心数据隐私问题而不愿将敏感资料上传至云端。此时可以选择一种基于浏览器端运行且不涉及任何外部传输的技术方案[^3]。此类应用具备如下特性: - 数据全程留在设备内部完成运算; - 能够一次性加载多个待处理对象; - 用户可自行设定最终产物的具体参数比如清晰度百分比或者目标像素范围等等; 这种类型的解决方案特别适用于那些对信息安全有着较高要求的企业环境或者是私人重要文档管理场景之中。 --- #### Java 实现方式简介 如果你倾向于编程层面解决问题,则可以借助 Thumbnailator 这样的第三方库来进行自动化脚本编写工作[^4]。下面给出了一段简单的例子演示怎样读取输入流并将之转化为缩小比例之后的新图形实例: ```java import net.coobird.thumbnailator.Thumbnails; import java.io.InputStream; public class ImageCompressor { public static void compress(InputStream inputStream, String outputPath) throws Exception{ Thumbnails.of(inputStream) .size(1920, 1080) // 设置输出尺寸 .outputFormat("jpg") .toFile(outputPath); } } ``` 此方法允许开发者轻松集成进自己的应用程序框架里头去执行动态生成缩略图或者其他形式的内容呈现逻辑当中。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值