Linux命令行处理图片方式(图片格式转换、缩放、旋转等)
作者:打工人小飞
Linux命令行处理图片
Centos OS 中默认安装了 ImageMagick,ImageMagick 是一系列的用于修改、加工图像的命令行工具。
ImageMagick 功能十分强大,本博文主要介绍自己在做实验过程中用得比较多的几个操作,更多更丰富的功能,读者可自行参考 ImageMagick 文档。
1. 转换图像格式
如下实例,将一个 JPG 格式的图片转换为 PNG 格式的图片:
convert imgyd064_R1_9_t_1.jpg imgyd064_R1_9_t_1.png
图片原名为 imgyd064_R1_9_t_1.jpg,是一张植物叶片的图像,经过转换后变为 png 格式文件,转化之后虽然表面看不出大的变化,但是图片大小明显增大 了(1.6M增至6.6M),这说明格式发生了根本性的转换,如下所示:
2. 缩放图像
下面的命令将一幅 2914x2914 的图像缩小为 100x100 的图像:
convert imgyd064_R1_9_t_1.jpg -resize 200x100 imgyd064_R1_9_t_1_resize.jpg
也许此时你会有疑问,为什么指定的是200x100,图像却变成了100x100,在使用这个命令的时候,ImageMagick 会尽量保持图像的纵横比。
它将会调整图像以适应200×100的区域,这样图像就不是恰好200×100了。
如果你想要强制把图像设置为指定的大小,即使这样做会改变图像的纵横比的话,那么在尺寸参数后面加一个叹号就可以了。
convert imgyd064_R1_9_t_1.jpg -resize 200x100! imgyd064_R1_9_t_1_resize.jpg
注:命令行中的200x100中的“x”为字母 x
3. 旋转图像
下面的命令将图像顺时针旋转90度:
convert imgyd064_R1_9_t_1.jpg -rotate 90 imgyd064_R1_9_t_1_rotate.jpg
以上只是冰山一角,ImageMagick 还有很多其他用法,非常强大,如果读者对 ImageMagick 的其他功能感兴趣,可以自行查阅其官方文档。
Linux命令行批处理图片,批量去除截图的无用部分
我希望产生一批相同区域但不同内容的截图,如果用截图工具截取矩形区域,那么每次截取的位置和大小都没法控制,不能做到区域一样。如果希望每次的截图都一样,那么就只能是保持窗口大小不变然后截取整个窗口,但是又希望能够去掉窗口的标题栏、工具栏等,去掉这些东西之后的截图还应该保持一样的区域。就需要有一个工具可以自动编辑图片,对所有截图执行相同的编辑,这样就能得到我想要的结果了。
幸运的是,Linux 有这样的工具,就是 mogrify,Ubuntu 18 已经预装了该工具,直接使用就可以了,比如要实现我上面的要求,只需要输入:
mogrify -crop 860x800+80+100 *.png
除了可以批量编辑大小外,还可以转换格式等,功能貌似很强大,网址:http://www.imagemagick.org/script/mogrify.php。
比如执行上述命令后可以把截图:
截取其中的有效部分:
我有十几张这样的截图,一条命令行全部处理完成,截取的区域一模一样,可以把这十几张截图做成视频来播放,就变成动态的波形了。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。