Конвертируйте изображения в формат png, используя image magick и не меняя его названия

#bash #imagemagick-convert

#bash #imagemagick-конвертировать

Вопрос:

Я использую следующий код для преобразования всех файлов изображений в каталоге и его подкаталогах из другого формата в формат png.

 find $1 -type f -name '*.jpeg' -o -name '*.jpg' -o -name '*.gif' -o -name '*.GIF' -o -name '*.PNG' |  xargs -n 1 -I {}  convert {} -set filename:base '%i' '%[basename]' '%[filename:base].png'
  

Изображения преобразуются в png, но я получаю странные результаты.
Изображение abc.jpg преобразуется в abc.jpg.png, в то время как я хочу, чтобы преобразованное изображение имело имя abc.png.

Я не понимаю, что здесь происходит. Кто-нибудь может помочь? Я не хочу использовать morgify.

Ответ №1:

Конвертируйте с тем же базовым именем, но с другим суффиксом:

 find ... | xargs -n 1 -I {} convert {} -set filename:base '%d/%t' '%[filename:base].png'
  

%d : компонент каталога path

%t : имя файла без каталога или расширения (суффикс)

Смотрите: https://imagemagick.org/script/escape.php