Массовое преобразование изображений из одного формата в другой?

44

Я хочу конвертировать пакет изображений, почти 100, из формата JPG в PNG. Как я могу сделать это, не переименовывая их, а вместо этого фактически конвертируя формат?

опу 웃
источник
Используйте convertкоманду. Нет, правда. Но вам захочется переименовать их из some.jpg в нечто.png.
Jos
1
@jos, из твоего комментария я не понимаю, что мне делать !!
opu 웃
Я не закончил редактирование ;-) Сначала используйте convertкоманду для одного файла .jpg и посмотрите, работает ли он. Затем напишите скрипт, который перебирает файлы .jpg и преобразует их в файлы .png.
Йос
Вы не упомянули, как я могу использовать convertкоманду в одном файле .jpg. И я не знаю, как написать скрипт, который перебирает файлы .jpg.
opu 웃

Ответы:

65

Попробуйте эти команды,

mogrify -format png /path/*.jpg    

Это преобразует все файлы .jpg в файлы .png и сохраняет преобразованные файлы в том же каталоге.

mv /path/*.png ~/Desktop/pic

Это переместит все .pngфайлы (преобразованные) в picкаталог, который находится на рабочем столе.

Авинаш Радж
источник
Должен ли я изменить каталог?
opu 웃
1
/path/*.jpgпредставляет каталог, в котором хранятся файлы .jpg.
Авинаш Радж
Я также попробовал эту команду после изменения каталога: mogrify -format png .jpgэто также работает хорошо.
opu 웃
Ответ ниже лучше , так как он учитывает ограничения, установленные для ARGV.
Эван Кэрролл,
Здесь есть отличное руководство: algissalys.com/how-to/… Также рассказывает об изменении размера изображения, что полезно, т.е. добавление -resize 800x меняет самую длинную сторону до 800 :)
Крейг Лэмби
42

Использование ImageMagick .

Сначала установите imagemagick:

sudo apt-get install imagemagick

Попробуйте сначала конвертировать только одно изображение:

convert image.jpg image.png

Теперь конвертируем все:

mogrify -format png *.jpg

РЕДАКТИРОВАТЬ

Вам также нужно разбить его на куски, которые будут соответствовать, чтобы не превысить предел того, сколько вы можете поместить в командную строку. Это должно работать лучше:

find -name '*.jpg' -print0 | xargs -0 -r mogrify -format png

-print0И -0используются для обработки пробелов в именах файлов и -rсредства не работают mogrify , если нет ничего , чтобы сделать.

Источник: https://stackoverflow.com/questions/1010261/running-a-batch-with-imagemagick

РЕДАКТИРОВАТЬ 2 Переключил PNG и JPG в соответствии с комментарием @ Glutanimate.

РЕДАКТИРОВАТЬ 3 Изменено png на jpg в последнем предложении.

Parto
источник
Одно изображение успешно конвертировано. Но когда я использовал команду, чтобы преобразовать все ее mogrify.im6: unable to open image ``*.png': No such file or directory @ error/blob.c/OpenBlob/2638.``mogrify.im6: unable to open file ``*.png' @ error/png.c/ReadPNGImage/3667.
показы
cdСначала вам придется перейти в этот каталог. Если они находятся на рабочем столе, cd ~/Desktopсначала запустите, а затем попробуйте снова выполнить преобразование.
Парто
Я изменил каталог
opu 웃
@ Парто, думаю, так и должно быть mogrify -format png *.jpg. ОП спрашивает о конвертации jpg → png.
Glutanimate
не работал у меня с 14.04 @Parto
talha06
0

Я знаю, что прошло много времени с тех пор, как был задан этот вопрос, но есть одна замечательная программа, о которой я не упомянул, которую я часто использовал.

http://photobatch.wikidot.com/ также известный как Phatch. Он буквально преобразует что-либо из чего-либо в изображение. Некоторое время он не обновлялся, но теперь утверждает, что выпущен для Ubuntu 17.10. Попробуйте. Я уверен, что вы будете очень довольны этим.

Джордж Таскер
источник
2
Попытка получить это программное обеспечение, ссылка «скачать» на файл deb отсутствует по вышеуказанной ссылке, а версия «хранилища» в Ubuntu выдает мне эту ошибку: следуют подробные ошибки от диспетчера пакетов: apt транзакция вернула результат exit-fail Ubuntu v 18.10 может быть? Во всяком случае - мой опыт.
Крейг Лэмби