ImageMagick开源图片处理神器
ImageMagick 是一款跨平台的开源图片处理工具,无需图形界面,通过命令行即可完成图片长宽比裁剪、黑色/透明背景填充、格式转换(JPG/PNG/WebP)以及质量压缩等常见操作,简单高效。
前言
ImageMagick 是一个强大的开源图片处理工具,支持多种图片格式和丰富的功能。无论是简单的图片转换,还是复杂的图像编辑,ImageMagick 都能轻松应对。 我经常使用它来做一些图片的大小调整和格式转换,效果非常好。下面是一些常用的 ImageMagick 命令示例。
安装
ImageMagick本身是跨平台的,可以在Windows和macOS上使用。
在windows上可以使用winget安装
winget install ImageMagick.Q16
在macos上可以使用homebrew安装
brew install imagemagick
调整长宽比例
现在自媒体平台对图片的长宽比例有严格的要求,通常是16:9或者4:3。
使用ImageMagick可以轻松调整图片的长宽比例。
先缩放再裁剪
如果想要先将图片等比缩放到满足长宽比例的要求,然后再裁剪掉多余的部分,可以使用以下命令:
# 将图片调整为16:9的长宽比例
magick input.jpg -resize 1920x1080^ -gravity center -extent 1920x1080 output.jpg
^:表示等比缩放,直到满足最小边的要求。-gravity center -extent:居中裁剪
添加黑色背景
magick input.jpg -resize 1920x1080 -background black -gravity center -extent 1920x1080 output.jpg
添加透明背景
magick input.jpg -resize 1920x1080 -background transparent -gravity center -extent 1920x1080 output.png
图片格式
ImageMagick 支持多种图片格式,可以轻松进行格式转换。例如,将 JPG 转换为 PNG:
magick input.jpg output.png
也可以支持转换成 WebP 格式:
magick input.jpg output.webp
图片压缩
ImageMagick 还可以用来压缩图片,减少文件大小。例如,将 JPG 图片压缩到 80% 的质量:
magick input.jpg -quality 80 output.jpg
最佳实践
我在自己的文章中使用图片时,为了节省图片带来的带宽成本,通常会先将图片转成 WebP格式,然后再利用压缩图片质量的命令进一步压缩图片大小,通常这样可以减少40%-60%左右的图片大小,同时保持较好的图片质量。
例如,我有一张原始的 JPG 图片,大小为 3MB,我会先将它转换成 WebP 格式
-
格式转换
将 JPG 转换成 WebP 格式
magick 压缩前.jpg 压缩前.webp -
压缩图片
再将 WebP 图片压缩到 70% 的质量
magick 压缩前.webp -quality 70 压缩后.webp -
效果对比
- 压缩前.jpg:3294K
- 压缩前.webp:290K (-91%)
- 压缩后.webp:278K (-4%)
通过上面的两步处理后,图片大小从 3MB 减少到了 278KB,节省了大量的带宽,同时图片质量也保持得很好。 不过也发现 WebP 格式在某些情况下降低图片质量没有显著的降低图片体积,这应该是由于 WebP 格式本身的压缩算法已经非常高效了,所以降低质量并不会显著减少文件大小,建议在实际使用中多尝试不同的压缩质量参数,以找到最佳的压缩效果。