Как преобразовать все изображения из подкаталогов в webp

Например, у меня есть папка с именем «Изображения», внутри которой находится 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 здесь .

Другие вопросы по тегам