Intro
ImageMagick 是命令行里的图像处理工具箱。裁剪、缩放、压缩、格式转换、批量加水印、生成缩略图,这些不值得打开设计软件的任务,基本都可以交给它。
My Use
我主要用它做两类事:批量转换图片格式,以及把截图、封面、素材压到合适尺寸。它适合处理明确、重复、可脚本化的图像任务,尤其是文件很多的时候。
When to Use / Not Use
适合
- 图片格式转换,比如 PNG、JPG、WebP、AVIF
- 批量缩放、裁剪、压缩
- 生成缩略图、占位图、预览图
- 查看图片尺寸、色彩空间、元数据
- 在脚本或 CI 里处理图片资源
不适合
- 需要人工审美判断的精修
- 复杂图层编辑
- 需要实时预览的设计工作
- 对色彩管理要求极高的印刷流程
Gotchas
- ImageMagick 7 里主命令是
magick,老教程里的convert可能已经不推荐直接用 - 默认可能会覆盖输出文件,批量处理前先在小目录里试跑
- JPEG 是有损格式,反复转换会降低质量
- 透明 PNG 转 JPG 会丢失透明通道,需要显式指定背景色
- 不同系统编译时启用的格式支持不完全一样,WebP、HEIC、AVIF 可能需要额外依赖
My Setup
# 查看图片信息
magick identify image.png
# 缩放到宽度 1200px,保持比例
magick input.png -resize 1200x output.jpg
# PNG 转 WebP,并控制质量
magick input.png -quality 82 output.webp
# 透明图转 JPG,补白色背景
magick input.png -background white -alpha remove -alpha off output.jpg
Story
ImageMagick 的气质很老派:命令多、参数细、文档厚,但一旦进入脚本化场景,它比 GUI 工具更可靠。很多时候,我不是想"编辑一张图",而是想"把这一批图按同一规则处理掉"。这正是它擅长的地方。
Minimal Example
# 单张图片压缩成 WebP
magick input.png -resize 1600x -quality 82 output.webp
# 批量把 PNG 转成 WebP(bash)
for f in *.png; do magick "$f" -quality 82 "${f%.png}.webp"; done
# 批量生成缩略图
magick mogrify -path thumbs -thumbnail 320x320 *.jpg
