当前位置: 首页 > 科技观察

Linux下批量转换PNG和JPG的四种方法

时间:2023-03-13 15:08:07 科技观察

在计算机术语中,批处理是指使用非交互式程序执行一系列任务的方法。在本教程中,我们将使用Linux命令行工具并提供4种简单的处理方法来将一些.PNG图像批量转换为.JPG格式并返回。虽然我们在所有示例中都使用了convert命令行工具,但您也可以使用mogrify命令来达到相同的效果。convert命令的语法如下:$convertinputoptioninputfileoutputoptionoutputfile而mogrify是:$mogrifyoptioninputfile注意:当使用mogrify命令时,源图像文件会被新的转换文件覆盖默认情况下,您可以使用显式操作选项禁用覆盖,这可以在手册页中找到。以下是将所有.PNG图像批量转换为.JPG的各种方法。如果要将.JPG格式转换为.PNG格式,也可以使用这些命令,根据需要进行修改。1.使用ls和xargs命令转换PNG和JPGls命令可以列出所有png图像文件,xargs可以从标准输入构造和执行convert命令,将所有.png图像转换为.jpg图像。----------从PNG转换为JPG------------$ls-1*.png|xargs-n1bash-c'convert"$0""${0%.png}.jpg"'---------从JPG转PNG---------$ls-1*.jpg|xargs-n1bash-c'convert"$0""${0%.jpg}.png"'以上命令选项的解释:-1-告诉ls每行列出一个图像名称选项标志-n-指定参数的最大数量,示例中为1-c–指示bash运行给定的命令${0%.png}.jpg–设置新转换的图像文件的名称,%符号用于删除源文件的扩展名。在Linux中,PNG格式被转换为JPG格式。我使用ls-ltr命令按修改日期和时间列出所有文件。同样,上述命令也可用于将.JPG图像转换为.PNG格式,只需进行一些调整。2.使用GNU的parallel命令转换PNG和JPGGNU的parallel使用户能够从标准输入并行构建和执行shell命令。确保你的系统上安装了GNUParallel,否则使用以下合适的命令安装:运行以下命令将所有.PNG图像从标准输入转换为.JPG格式图像。----------ConvertfromPNGtoJPG------------$parallelconvert'{}''{.}.jpg':::*.png----------从JPG转换为PNG------------$parallelconvert'{}''{.}.png':::*.jpg其中:{}–输入行替换字符,而不是从输入源读取的完整行。{.}–去除扩展名的输入行。:::--指定输入源的符号,即上例中的命令行,其中png或jpg为命令参数。并行命令——将所有PNG图片转换为JPG格式或者,也可以结合ls和并行命令,批量转换所有图片,如图:----------ConvertfromPNGtoJPG------------$ls-1*.png|parallelconvert'{}''{.}.jpg'------------从JPG转PNG-----------$ls-1*.jpg|parallelconvert'{}''{.}.png'3.使用for循环命令转换PNG和JPG避免繁琐的shell脚本编写,可以使用命令行执行for循环语句如下:----------ConvertfromPNGtoJPG------------$bash-c'forimagein*.png;doconvert"$image""${image%.png}.jpg";echo"image$imageconvertedto${image%.png}.jpg";done'----------从JPG转PNG-----------$bash-c'forimagein*.jpg;doconvert"$image""${image%.jpg}.png";echo"image$imageconvertedto${image%.jpg}.png";done'上述命令使用的选项参数说明:-c允许执行单引号括起来的循环语句。image变量是目录中图像名称数量的计数。对于每个转换操作,在$imageconvertedto${image%.png}.jpg行中,echo命令通知用户png图像已转换为jpg格式,反之亦然。${image%.png}.jpg语句创建转换后的图像名称,其中%表示去除源图像文件的扩展名。for循环语句——从PNG转换为JPG格式4.使用shell脚本转换PNG和JPG如果你不想像前面的例子那样把你的命令行搞得一团糟,你可以写一个小脚本如下:注意:适当地交换.png和.jpg扩展名,如以下示例所示,从一种格式转换为另一种格式:#!/bin/bash#convertforimagein*.png;doconvert"$image""${image%.png}。jpg"echo"image$imageconvertedto${image%.png}.jpg"doneexit0把上面的脚本保存为convert.sh文件,然后让这个脚本文件可执行,然后从存放图片文件的目录下下载下来执行。$chmod+xconvert.sh$./convert.sh使用shell脚本进行批量图像转换总之,我们介绍了一些将.PNG图像批量转换为.JPG格式并再次转换回来的重要方法。如果你还想对图片做一些优化,可以移步到如何在Linux系统中压缩png和jpg图片这篇指南文章。您可以与我们分享一些将图像从一种格式转换为另一种格式的方式方法,包括Linux命令行工具,或者在下面的评论部分说出您的想法。