如何将子目录中的所有图像转换为 webp

如何将子目录中的所有图像转换为 webp

例如,我有一个名为 Images 的文件夹,里面有 26 个文件夹,分别为 a、b、c、d,每个文件夹包含多个图像,格式分别为 jpg、png、jpeg。如何将所有这些图像转换为 webp 并删除原始图像,或者将转换后的文件复制到具有相同子文件夹名称的另一个位置。

答案1

imagick首先我建议在你的 Ubuntu 发行版上安装该包。

如果您没有安装,请运行sudo apt install imagemagick命令。在终端上打开包含要转换的扩展名的文件的子文件夹。

之后在终端上运行以下命令:

find . -type f -name "*.png" -exec mogrify -format webp {}  \; -print && find . -type f -name "*.jpg" -exec mogrify -format webp {}  \; -print && find . -type f -name "*.jpeg" -exec mogrify -format webp {}  \; -print

您还可以使用正则表达式将以上所有命令组合在单个表达式中:

find . -type f -regex ".*\.\(jpg\|jpeg\|png\)" -exec mogrify -format webp {}  \; -print

要删除剩余文件(原始文件),请随后运行以下命令:

find . -type f -regex ".*\.\(jpg\|jpeg\|png\)" -exec rm {}  \; -print

有关 Imagick 使用的更多信息,您可以在其官方网站上找到地点关于 mogrify这里

相关内容