ImageMagick 是 Linux 下的一个常用的图像处理工具,核心命令是 convert, identify 等。
type convert identify
# identify is /usr/bin/identify
# convert is /usr/bin/convert
ll /usr/bin/convert /usr/bin/identify
# lrwxrwxrwx 1 root root 25 2018-09-27 14:23:05 /usr/bin/convert -> /etc/alternatives/convert
# lrwxrwxrwx 1 root root 26 2018-09-27 14:23:05 /usr/bin/identify -> /etc/alternatives/identify
ll /etc/alternatives/convert /etc/alternatives/identify
# lrwxrwxrwx 1 root root 24 2018-09-27 14:22:52 /etc/alternatives/convert -> /usr/bin/convert-im6.q16
# lrwxrwxrwx 1 root root 25 2018-09-27 14:22:52 /etc/alternatives/identify -> /usr/bin/identify-im6.q16
apt-file search /usr/bin/convert-im6.q16
apt show imagemagick
apt-file list imagemagick-6.q16 | grep /bin/
# imagemagick-6.q16: /usr/bin/animate-im6.q16
# imagemagick-6.q16: /usr/bin/compare-im6.q16
# imagemagick-6.q16: /usr/bin/composite-im6.q16
# imagemagick-6.q16: /usr/bin/conjure-im6.q16
# imagemagick-6.q16: /usr/bin/convert-im6.q16
# imagemagick-6.q16: /usr/bin/display-im6.q16
# imagemagick-6.q16: /usr/bin/identify-im6.q16
# imagemagick-6.q16: /usr/bin/import-im6.q16
# imagemagick-6.q16: /usr/bin/mogrify-im6.q16
# imagemagick-6.q16: /usr/bin/montage-im6.q16
# imagemagick-6.q16: /usr/bin/stream-im6.q16
原图
素材:sample1.jpg
素材:sample2.jpg
素材:sample3.jpg
素材:sample4.jpg
素材:sample5.jpg
过程
查看图片信息
identify sample*.jpg
# sample1.jpg JPEG 600x461 600x461+0+0 8-bit sRGB 13981B 0.000u 0:00.000
# sample2.jpg JPEG 600x461 600x461+0+0 8-bit sRGB 18451B 0.000u 0:00.000
# sample3.jpg JPEG 600x458 600x458+0+0 8-bit sRGB 26178B 0.000u 0:00.000
# sample4.jpg JPEG 600x464 600x464+0+0 8-bit sRGB 27345B 0.000u 0:00.000
# sample5.jpg JPEG 600x290 600x290+0+0 8-bit sRGB 36580B 0.000u 0:00.000
横向拼接
convert +append sample{1,2}.jpg markjour1.jpg
convert -resize 600x markjour1.jpg markjour1.jpg
convert +append sample{3,4}.jpg markjour2.jpg
convert -resize 600x markjour2.jpg markjour2.jpg
convert -resize 600x sample5.jpg markjour3.jpg
纵向拼接
convert -append -quality 70 markjour{1..3}.jpg full.jpg
最终效果
其他
我常用的 convert 参数
-resize
缩放-sample 50%
和 resize 功能类似,不过只采样,不插值(表现就是放大时,resize 会模糊,sample 则马赛克)+/-append
拼接-quality 70
图片质量-crop WxH+X+Y
裁剪-transparent white
将某种颜色设为透明,在有些情况下,真香-flatten -background '#eee'
将透明色去掉,替换成指定底色
没有用过的 convert 参数
delay
可以生成 GIF
webp
ImageMagick 不支持 webp
PS: 现在好像支持了 Update @ 2021/09/25
sudo apt install -y webp
cwebp
dwebp
这两个命令也用得多,一方面网页上下下来的图片很多都是 webp 格式了,再一方面,自己也常用 webp 格式图片在网页上。
具体用法就看 manpage,比较简单。