4种批量方式将PNG转换为JPG和Vice-Versa

在计算中, 批处理一个系列任务的执行程序中的非交互。 在本指南将为您提供4个简单的方法来批量转换数 .PNG图像 .JPG ,反之亦然使用Linux命令行工具。 我们将使用在所有的例子 转换命令行工具,但是,您可以同时使用 mogrify来实现这一点。 使用 转换的语法是:
$ convert input-option input-file output-option output-file
而对于 mogrify是:
$ mogrify options input-file
注意 :使用 mogrify,原始图像文件被替换为默认情况下,新的图像文件,但它可以防止这一点,通过使用特定的选项,你可以在手册页找到。 下面是各种方法来批量转换所有 .PNG图像 .JPG格式,如果要转换 .JPG.PNG ,您可以根据自己的需要修改的命令。

1.使用'ls'和'xargs'命令将PNG转换为JPG

该 允许你列出你所有的 PNG图像和 xargs的使人们有可能建立并从标准输入执行 convert命令将所有转换 .png图像 .jpg
----------- Convert PNG to JPG ----------- 
$ ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.png}.jpg"'
----------- Convert JPG to PNG ----------- 
$ ls -1 *.jpg | xargs -n 1 bash -c 'convert "$0" "${0%.jpg}.png"'
有关上述命令中使用的选项的说明。
  1. -1 -标志告诉ls列出每行一个图像。
  2. -n -指定的参数的最大数量,这对于情况1。
  3. -c -指示bash的运行给定的命令。
  4. ${0%.png}.jpg -设置新转换的图像的名称,%符号有助于消除旧的文件扩展名。

在Linux下将PNG转换为JPG格式

我用 ls -ltr命令 列出了修改日期和时间的所有文件 。 同样,您可以使用上面的命令来转换所有 .jpg图像 .png通过调整上面的命令。

2.使用GNU'Parallel'命令将PNG转换为JPG

GNU并行使用户能够建立和并行从标准输入执行shell命令。确保您的系统上安装了GNU Parallel,否则请使用以下适当的命令进行安装:
$ sudo apt-get install parallel     [On Debian/Ubuntu systems]
$ sudo yum install parallel         [On RHEL/CentOS and Fedora]
一旦安装 并行实用程序,可以运行以下命令将所有转换 .png图像 .jpg格式,从标准输入。
----------- Convert PNG to JPG ----------- 
$ parallel convert '{}' '{.}.jpg' ::: *.png
----------- Convert JPG to PNG -----------
$ parallel convert '{}' '{.}.png' ::: *.jpg
哪里,
  1. {} -输入线,是从输入源中读取的完整产品线取代替换字符串。
  2. {.} -输入线减去扩展。
  3. ::: -指定输入信号源,也就是上面其中* PNGJPG *是论点的例子在命令行。

并行命令 - 将所有PNG图像转换为JPG格式

另外,也可以同时使用 和 并行命令一起批次所有的图像转换,如下所示:
----------- Convert PNG to JPG ----------- 
$ ls -1 *.png | parallel convert '{}' '{.}.jpg'
----------- Convert JPG to PNG -----------
$ ls -1 *.jpg | parallel convert '{}' '{.}.png'

3.使用'for循环'命令将PNG转换为JPG

为了避免编写shell脚本的喧嚣,您可以执行一个 for loop如下命令行:
----------- Convert PNG to JPG ----------- 
$ bash -c 'for image in *.png; do convert "$image" "${image%.png}.jpg"; echo “image $image converted to ${image%.png}.jpg ”; done'
----------- Convert JPG to PNG -----------
$ bash -c 'for image in *.jpg; do convert "$image" "${image%.jpg}.png"; echo “image $image converted to ${image%.jpg}.png ”; done'
上述命令中使用的每个选项的说明:
  1. -c允许执行在单引号循环语句。
  2. 图像变量是在目录中的图像数量的计数器。
  3. 对于每个转换操作中, echo命令通知PNG图像已被转换到行$图像 jpg格式,反之亦然用户转换为$ {图片%巴纽} .JPG“。
  4. “$ {图片%巴纽} .JPG”创建转换的图像,其中删除旧的图像格式的扩展名。

for循环 - 将PNG转换为JPG格式

4.使用Shell脚本将PNG转换为JPG

如果你不想像前面的例子那样让你的命令行变脏,写一个小脚本,如: 注意 :适当互换 .png.jpg扩展在下面的转换的例子从一种格式转换为另一种。
#!/bin/bash
#convert
for image in *.png; do
convert  "$image"  "${image%.png}.jpg"
echo “image $image converted to ${image%.png}.jpg ”
done
exit 0 
将其保存为 convert.sh ,使脚本可执行文件,然后从具有图像的目录中运行它。
$ chmod +x convert.sh
$ ./convert.sh

使用Shell脚本进行批处理图像转换

综上所述,我们覆盖的批量转换的一些重要方面 .png图像 .jpg格式,反之亦然。 如果你想优化的图像,你可以通过我们的指南,介绍 如何在Linux的压缩PNG和JPG图片 。 你可以跟我们以及共享任何其他方法,包括 从一种格式转换图像到另一个终端上,或者要求通过下面的评论部分的问题。
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏