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

 更新时间:2023年06月16日 09:59:30   作者:打工人小飞  
这篇文章主要介绍了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系统切换用户后只显示$问题

    解决Linux系统切换用户后只显示$问题

    当我们在使用Linux系统切换用户后只显示$,所以本文将给大家详细介绍一下如何解决Linux系统切换用户后只显示$问题,文中有详细问题分析和解决方案,需要的朋友可以参考下
    2023-10-10
  • linux下如何把进程/线程绑定到特定cpu核上运行

    linux下如何把进程/线程绑定到特定cpu核上运行

    这篇文章主要介绍了linux下如何把进程/线程绑定到特定cpu核上运行问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Linux服务器下安装配置Nginx的教程

    Linux服务器下安装配置Nginx的教程

    这篇文章主要介绍了Linux服务器下安装配置Nginx服务器的教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • Win7安装和配置Apache2.4服务器的详细方法

    Win7安装和配置Apache2.4服务器的详细方法

    这篇文章主要介绍了Win7安装和配置Apache2.4服务器的详细方法,需要的朋友可以参考下
    2017-09-09
  • CentOS7使用dnf安装mysql的方法

    CentOS7使用dnf安装mysql的方法

    本篇文章主要介绍了CentOS7使用dnf安装mysql的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Linux parted磁盘分区实现步骤解析

    Linux parted磁盘分区实现步骤解析

    这篇文章主要介绍了Linux parted磁盘分区实现步骤解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • linux利用read命令获取变量中的值

    linux利用read命令获取变量中的值

    对于写bash脚本的朋友,read命令是不可或缺的,需要实践一下就可以了解,下面这篇文章主要给大家介绍了关于linux如何利用read命令来获取变量中值的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-08-08
  • 在Linux服务器中查看运行的服务的方法汇总

    在Linux服务器中查看运行的服务的方法汇总

    在云服务器中,查看服务器具体运行的服务可以通过多种方法实现,具体的方法取决于你所使用的操作系统,常见的云服务器操作系统包括Linux(例如Ubuntu、CentOS等)和Windows Server,下面将分别介绍如何在这两种操作系统中查看正在运行的服务,需要的朋友可以参考下
    2025-05-05
  • Linux权限管理与ACL访问控制详解

    Linux权限管理与ACL访问控制详解

    Linux权限管理涵盖基本rwx权限(通过chmod设置)、特殊权限(SUID/SGID/StickyBit)及ACL精细授权,由umask决定默认权限,需合理配置以保障系统安全
    2025-08-08
  • CentOS7配置SSH远程登录全过程

    CentOS7配置SSH远程登录全过程

    本文详细介绍了如何在CentOS和Windows 11之间配置网络连接,并在CentOS上安装和配置SSH服务,文章还涵盖了配置防火墙和测试SSH连接的步骤
    2026-01-01

最新评论