Как конвертировать все файлы (в разных форматах) в заданную папку в другой тип файла - программирование
Подтвердить что ты не робот

Как конвертировать все файлы (в разных форматах) в заданную папку в другой тип файла

У меня есть папка со многими изображениями разных типов (png, jpg, jpeg, bmp, pdf), и я хотел бы преобразовать их все в png (например) с помощью imagemagick.

Есть ли одна команда, которая может это выполнить? Если нет, что мне делать вместо этого?

Спасибо.

4b9b3361

Ответ 1

Попробуйте выполнить команду mogrify:

mogrify -format png *.*

Но будьте осторожны. Без параметра -format mogrify перезаписывает исходные изображения. Обязательно прочитайте документацию .

Ответ 2

Хотя mogrify, похоже, выполняет эту работу, я хотел бы показать вам, как это можно сделать с помощью нескольких команд с convert из ImageMagick.

Я думаю, что несколько команд лучше, потому что количество типов файлов предположительно довольно мало, и вы можете лучше настроить его на свои нужды:

Эта команда:

for file in *.xbm; do convert $file "`basename $file .xbm`.png"; done

преобразует все файлы .xbm в .png, не касаясь файлов xbm.

Затем вы можете переместить все "конвертированные" файлы:

mkdir converted
for file in *.xbm; do mv $file converted/; done

Ответ 3

Вы можете использовать команду convert из пакета ImageMagick, например.

find . -maxdepth 1 \( -iname \*.png -o -iname \*.jpg -o -iname \*.jpeg -o -iname \*.bmp -o -iname \*.pdf \) -exec convert -verbose "{}" "DEST_DIR/{}.png" \;

Или, если у вас есть все файлы в одном каталоге, попробуйте следующий простой способ:

convert '*.*' converted_%04d.png

Аналогично: Как масштабировать все изображения в папке до той же ширины?