您的位置:首页技术文章
文章详情页

Linux命令行处理图片方式(图片格式转换、缩放、旋转等)

日期:2023-09-26浏览:317作者:猪猪【字号:
导读:这篇文章主要介绍了Linux命令行处理图片方式(图片格式转换、缩放、旋转等),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
目录Linux命令行处理图片1. 转换图像格式2. 缩放图像3. 旋转图像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。

比如执行上述命令后可以把截图:

截取其中的有效部分:

我有十几张这样的截图,一条命令行全部处理完成,截取的区域一模一样,可以把这十几张截图做成视频来播放,就变成动态的波形了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持好吧啦网。

标签: Linux