如何递归自动将所有bmp图像转换为给定目录中的png文件?

7 gnome command-line scripts image-processing batch

我的机器上有一个目录,里面有 100 张图片。这些图像中约有一半是 bmp 文件,另一半是 png 文件。我需要将所有 bmps 转换为 png,但由于它们太多,我不想手动完成。

那么我如何递归和自动(可能使用脚本)将所有 bmp 图像文件转换为该目录中的 png 图像文件?

我正在使用 GNOME 3.18 运行 Ubuntu GNOME 15.10。

and*_*.46 10

for对于单个目录,一个简单的循环可能就足够了:

for i in *.bmp
do 
convert $i "${i%.bmp}.png"
done
Run Code Online (Sandbox Code Playgroud)

要使其真正递归,有几种选择,一种方法如下:

find . -name '*.bmp' -type f -exec bash -c 'convert "$0" "${0%.bmp}.png"' {} \;
Run Code Online (Sandbox Code Playgroud)

如果您想多涉足一点,您可以使用以下语法为 png 级别指定质量级别

-quality value
Run Code Online (Sandbox Code Playgroud)

这将最低质量和最小文件大小的值为 1,而最高质量和最大文件大小的值为 100。默认值大约为 92。更多详细信息在这里...