Преобразование изображений Webp в PNG с помощью команды Linux - PullRequest
2 голосов
/ 14 марта 2019

У меня есть много изображений в формате webp в папке, но с расширением .jpg , например

abc-test.jpg

Это изображение в формате webp .Я хочу, чтобы он конвертировался в формат .png с тем же именем, для которого я использовал эту команду, и она сработала

find.-name "* .jpg" -exec dwebp {} -o {} .png \;

Преобразует все webp изображений в .png , нопроблема в том, что он сохраняет изображения следующим образом:

abc-test.jpg.png

Как я могу сохранить его без расширения .jpg как

abc-test.png

Ответы [ 2 ]

2 голосов
/ 20 марта 2019

Если у вас есть много для преобразования / переименования, я бы порекомендовал вам использовать GNU Parallel и не только быстрее конвертировать их, выполняя их параллельно, но и воспользоваться возможностью изменять имена файлов.

Требуемая команда:

parallel dwebp {} -o {.}.png ::: *.jpg

, где {.} означает «имя файла без исходного расширения» .

Если вы хотитедля перехода в подкаталоги вы также можете использовать:

find . -name "*.jpg" -print0 | parallel -0 dwebp {} -o {.}.png

Если вам нужен индикатор прогресса или «расчетное время прибытия» , вы можете добавить --progress или --eta после команды parallel.

Если вы хотите увидеть, что GNU Parallel будет запускаться без какого-либо выполнения, добавьте --dry-run.

Я рекомендую GNU Параллельно вам в этом веке, когда процессоры становятся "толще" (больше ядер), а не быстрее.

0 голосов
/ 14 марта 2019

Хорошо бы использовать sed вместе с mv. Он соответствует шаблону и заменяет новым.

for file in *.jpg;
do
   mv "$file" "`echo $file | sed s/.jpg/.png/`"
done

если вы хотите сохранить старые файлы вместо mv , вы можете использовать cp

...