在Linux下将PNG和JPG批量互转的四种方法

计算机术语中,批处理指的是用一个非交互式的程序来执行一序列的任务的方法。这篇教程里,我们会使用 Linux 命令行工具,并提供 4 种简单的处理方式来把一些 .PNG 格式的图像批量转换成 .JPG 格式的,以及转换回来。

计算机术语中,批处理指的是用一个非交互式的程序来执行一序列的任务的方法。这篇教程里,我们会使用 Linux 命令行工具,并提供 4 种简单的处理方式来把一些 .PNG 格式的图像批量转换成 .JPG 格式的,以及转换回来。

虽然所有示例中我们使用的都是 convert 命令行工具,但是您也可以使用 mogrify 命令来达到同样的效果。

convert 命令的语法如下:

convert 输入选项 输入文件 输出选项 输出文件

morify 为:

mogrify 选项 输入文件

注意:在使用 mogrify 命令时,默认情况下源图像文件会被转换后的新文件覆盖掉,您可以使用明确的操作选项来禁止覆盖,具体的选项可以在手册页中查询得到。

下面是把所有 .PNG 格式图像批量转换为 .JPG 格式的各种实现方式。如果想把 .JPG 转换为 .PNG 格式,也可使用这些命令,按需修改。

1. 使用 ls 和 xargs 命令来转换 PNG 和 JPG

ls 命令 可以列出所有的 png 图像文件, xargs 使得可以从标准输入构建和执行 convert 命令,从而将所有.png 图像转换为 .jpg 图像。

----------- 从 PNG 转换到 JPG -----------

$ ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.png}.jpg"' 

----------- 从 JPG 转换到 PNG -----------

$ ls -1 *.jpg | xargs -n 1 bash -c 'convert "$0" "${0%.jpg}.png"'

关于上面命令选项的说明:

-1 – 告诉 ls 每行列出一个图像名称的选项标识
-n – 指定最多参数个数,例子中为 1
-c – 指示 bash 运行给定的命令
${0%.png}.jpg – 设置新转换的图像文件的名字,% 符号用来删除源文件的扩展名

2. 使用 for 循环命令来转换 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 

おすすめ

転載: blog.csdn.net/ZauberC/article/details/131647219