日常图片压缩,很多人第一反应是找 GUI 软件:点几下鼠标,拖入图片,调整参数,等待完成。这类工具适合手动处理少量文件,但如果你需要批量压缩几百张图片、集成到构建流程里,或者在服务器上自动优化上传资源,GUI 就显得力不从心了。

命令行图片压缩工具正是为解决这类场景而生:它们没有图形界面,但速度极快、可脚本化、能批量处理,而且是许多 GUI 压缩软件背后的核心引擎。本文介绍两款经典工具:pngquantjpegoptim,分别专注 PNG 和 JPEG 格式。

· · ·

1. pngquant — PNG 有损压缩专家

  • 简介: pngquant 是一款专注于 PNG 格式的命令行压缩工具,采用有损压缩算法,通常能将 PNG 体积减小 40-70%,同时保持较好的视觉质量。它基于 libimagequant 库,通过减少调色板颜色数量实现高压缩率,是许多 GUI 图片压缩软件背后的 PNG 压缩引擎。
  • 官网: https://pngquant.org/
  • GitHub: https://github.com/kornelski/pngquant
  • 收费: 完全免费(开源,BSD-like license)
  • 国内可用: ✅ 命令行工具,国内可直接运行
  • 开箱即用: ✅ 安装后直接通过命令行使用
  • 手机端: ❌ 仅桌面/服务器命令行
  • 优点: 压缩率极高(40-70%)、速度极快、支持批量处理、可集成到脚本/CI/CD、保持透明通道(alpha channel)
  • 缺点: 有损压缩,不适合对画质零容忍的场景;仅支持 PNG 格式
· · ·

2. jpegoptim — JPEG 全能优化器

  • 简介: jpegoptim 是一款专注于 JPEG 格式的命令行优化工具,同时支持无损和有损两种优化模式。无损模式下不降低画质,仅去除冗余元数据;有损模式下可调整质量因子,进一步减小文件体积。它可处理 EXIF、ICC 配置文件、注释等元数据,是服务器和开发者批量优化 JPEG 图片的首选工具。
  • 官网: https://www.jpegoptim.org/
  • GitHub: https://github.com/tjko/jpegoptim
  • 收费: 完全免费(GPL-3.0)
  • 国内可用: ✅ 命令行工具,国内可直接运行
  • 开箱即用: ✅ 安装后直接通过命令行使用
  • 手机端: ❌ 仅桌面/服务器命令行
  • 优点: 同时支持无损和有损优化、保留 EXIF 可选、支持批量处理、可集成到自动化流程、压缩后画质损失极小
  • 缺点: 仅支持 JPEG 格式;高级功能需要编译时开启额外选项
· · ·

核心使用场景对比

场景pngquantjpegoptim
PNG 有损压缩✅ 主力场景❌ 不支持 PNG
PNG 批量处理✅ 支持 glob 和脚本❌ 不支持 PNG
JPEG 无损优化❌ 不支持 JPEG✅ 主力场景
JPEG 有损压缩❌ 不支持 JPEG✅ 支持质量调整
保留透明通道✅ 支持N/A
保留 EXIF默认移除✅ 可选保留
CI/CD 集成✅ 易于集成✅ 易于集成
服务器自动优化✅ 适合✅ 适合
· · ·

典型命令行用法

pngquant:

# 单文件压缩
pngquant input.png --output output.png

# 批量压缩当前目录所有 PNG
pngquant *.png --ext .png --force

# 指定压缩质量范围(0-100)
pngquant --quality=60-80 input.png

jpegoptim:

# 无损优化(去除元数据,不降低画质)
jpegoptim --strip-all input.jpg

# 有损压缩(指定质量 60)
jpegoptim --max=60 input.jpg

# 批量优化当前目录所有 JPEG
jpegoptim --strip-all *.jpg

# 保留 EXIF 信息
jpegoptim --preserve *.jpg
· · ·

综合对比表

工具专注格式压缩模式典型压缩率国内可用开箱即用上手难度推荐度
pngquantPNG有损40-70%简单⭐⭐⭐⭐⭐
jpegoptimJPEG无损+有损10-30%简单⭐⭐⭐⭐⭐
· · ·

🏆 推荐结论

🥇 首选方案

PNG 压缩 → pngquant 如果你需要压缩 PNG 图片(尤其是截图、UI 素材、带透明通道的图片),pngquant 是目前最成熟、压缩率最高的命令行工具。它也是 Caesium、ImageOptim 等 GUI 工具的 PNG 压缩引擎,足以证明其可靠性。

JPEG 压缩 → jpegoptim 如果你需要优化 JPEG 照片,jpegoptim 是首选。无损模式可安全用于已有素材库,有损模式适合 Web 图片压缩。服务器批量优化、静态资源构建流程中经常能看到它的身影。


🥈 万金油方案

GUI + 命令行组合 日常少量图片用 Caesium 等 GUI 工具手动处理,批量/自动化场景用 pngquant + jpegoptim 脚本处理。两者互补,覆盖 PNG 和 JPEG 全格式。


🥉 特定场景

网站构建优化 → 两者都用 前端项目图片资源构建时,可用脚本调用 pngquant 压缩 PNG,jpegoptim 压缩 JPEG,实现全格式自动化优化。

服务器自动压缩上传图片 → jpegoptim(照片) + pngquant(截图/素材) 上传接口触发压缩,或定时扫描媒体目录优化,两者都可集成到 shell 脚本或 CI/CD 流程中。


💡 终极建议

如果你经常处理图片,建议把 pngquantjpegoptim 都装上,配合一个简单的 shell 脚本,就能实现 PNG/JPEG 全格式批量压缩。GUI 工具适合偶尔手动处理,命令行工具才是批量、自动化、服务器场景下的真正利器。

原文发布于 二翁集

关注公众号「爱维护」,获取更多实用工具推荐

系列文章: - Caesium:高压缩比与傻瓜式操作的图片压缩利器(GUI 工具推荐) - 6 款免费无损放大工具对比(Upscayl / Real-ESRGAN / Waifu2x 等) - ShareX:免费开源的截图录屏全能工具(截图 / 录屏 / OCR) - 本文(pngquant / jpegoptim 命令行压缩工具)