一张一张地压缩图片是生产力陷阱。无论你是从一次拍摄里挑选 200 张照片的摄影师、为网页项目准备素材的开发者,还是上传新品的电商运营,一次只压一张每周都会浪费数小时。
| 方法 | 最多图片数 | 需要的配置 | 隐私 | 最适合 |
|---|---|---|---|---|
| ImgMin (browser) | 一次 10 张 | 无 | ✓ 仅本地 | 快速批量、敏感图片 |
| Mac Preview | 无限 | 无(系统内置) | ✓ 仅本地 | Mac 用户、偶尔使用 |
| ImageMagick (CLI) | 无限 | 需要安装 | ✓ 仅本地 | 高级用户、自动化 |
| Sharp (Node.js) | 无限 | 开发环境 | ✓ 仅本地 | 开发者、CI/CD 流水线 |
| TinyPNG API | 每月免费 500 张 | API 密钥 | 上传到服务器 | 大批量、服务器端工作流 |
| iLoveIMG | 批量(免费版有限) | 无 | 上传到服务器 | 偶尔的大批量 |
一次把最多 10 张图片拖到 ImgMin 上。工具会用你浏览器的 Canvas API 同时压缩全部,并打包成一个 ZIP 供下载。零服务器上传——所有处理都在你的机器上进行。
如何使用:
10 张图片处理用时不到 5 秒。无需账号、无月度限制、无费用。
Mac 用户无需安装任何软件,用内置的「预览」应用即可批量压缩图片:
预览会在一次操作中导出并压缩所有所选图片。用这种方式通常能在无可见画质差异下实现 50–70% 的体积缩减。
ImageMagick 是批量图片处理的黄金标准。它免费、跨平台,并能在单条命令里处理上千张图片:
# Install on Mac
brew install imagemagick
# Compress all JPEGs in current folder to 80% quality
mogrify -quality 80 *.jpg
# Compress all PNGs (lossless optimization)
mogrify -strip *.png
# Batch compress + resize to max 1200px wide
mogrify -resize 1200x1200\> -quality 80 *.jpg
# Convert all PNGs to WebP
mogrify -format webp -quality 85 *.png
mogrify 会就地覆盖文件。请始终在副本上操作,或使用 convert input.jpg -quality 80 output-compressed.jpg 进行单文件的非破坏性流程。如果你是开发者,Sharp 是最快的 Node.js 图片处理库,也是自动化流水线的正确选择:
const sharp = require('sharp');
const glob = require('glob');
const path = require('path');
// Batch compress all JPEGs in /input to /output
glob('input/*.{jpg,jpeg}', (err, files) => {
files.forEach(file => {
const output = path.join('output', path.basename(file));
sharp(file)
.jpeg({ quality: 80, mozjpeg: true })
.toFile(output);
});
});
// Batch convert PNG to WebP
glob('input/*.png', (err, files) => {
files.forEach(file => {
const output = path.join('output', path.basename(file, '.png') + '.webp');
sharp(file)
.webp({ quality: 85 })
.toFile(output);
});
});
Sharp 底层使用 libvips,批量处理通常比 ImageMagick 快 4–5 倍。它是 CMS 图片流水线和 CI/CD 工作流的推荐之选。
FFmpeg 主要以视频闻名,但也是出色的批量图片处理器——尤其适合把动态 GIF 转成 WebP:
# Convert all GIFs to animated WebP
for f in *.gif; do ffmpeg -i "$f" "${f%.gif}.webp"; done
# Batch resize + JPEG compress
for f in *.jpg; do
ffmpeg -i "$f" -vf scale=1200:-1 -q:v 4 "compressed/${f}"
done
Windows 用户有几个内置选项:
对于网页项目,最佳做法是把压缩作为构建过程的一部分自动进行,这样不会有任何图片漏掉优化:
vite-plugin-imagemin 或 image-webpack-loader 在构建时压缩图片calibreapp/image-actions 步骤,在每个 PR 上自动压缩图片calibreapp/image-actions 加进你仓库的 CI 工作流。每当一个 PR 新增或修改图片,它都会自动压缩并提交优化后的版本——零手工操作。对最多 10 张图片,ImgMin 是最快的免费浏览器选项——不上传、无账号、即时 ZIP 下载。更大批量请用 ImageMagick(命令行)或 Sharp(Node.js)。Mac 用户可用「预览」内置的「导出所选图像」功能。
可以。80% 质量的 JPEG 或 85% 质量的 WebP 能在正常观看尺寸下无可察觉的画质差异地减小 50–70% 体积。无损 PNG 压缩可在零画质损失下实现 20–30% 缩减。
在「预览」中打开所有图片,全选(Cmd+A),前往 文件 → 导出所选图像,选 JPEG 格式、80% 质量。一步完成所有图片的压缩和导出——无需额外软件。最多 10 张时,浏览器里的 ImgMin 也可以。
最后更新:2026 年 4 月。工具功能和 API 限额可能变化——请以各工具的官方文档为准。