Преобразование форматов изображений — распространенная задача при работе с графикой или фотографиями. Если Вам нужно конвертировать PNG-изображение в JPG или наоборот, в Linux существует утилита командной строки convert, позволяющая это сделать.
В этой статье мы рассмотрим четыре различных способа использования convert для преобразования фото PNG в JPG и наоборот.
Содержание:
- Что такое convert
- Изменение формата изображения с помощью ls и xargs
- Преобразование формата с помощью команды parallel
- Изменение формата изображения с помощью цикла for
- Преобразование формата картинки с использованием скрипта
- Выводы
Что такое convert
Утилита convert — универсальный инструмент для работы с картинками и их преобразования в Linux. Она входит в состав пакета ImageMagick и позволяет выполнять широкий спектр операций с фотографиями, включая:
- преобразование формата;
- изменение размера;
- обрезку;
- поворот.
Синтаксис команды convert выглядит следующим образом:
Где:
[input-options],[output-options]— необязательные параметры, которые изменяют поведение команды;[input-file]— путь или название исходной картинки;[output-file]— путь или название выходного изображения.
Эта утилита изначально не предустановлена в большинстве дистрибутивов Linux. Чтобы ее установить, введите следующую команду.
Для Debian / Ubuntu:
Для CentOS / RHEL:
Для Fedora 22+:
Изменение формата изображения с помощью ls и xargs
Во всех последующих примерах мы будем конвертировать фото cat.jpg c расширения JPG на PNG и наоборот. Эта картинка выглядит следующим образом.
В первом способе мы рассмотрим использование утилит командной строки ls и xargs. Команда ls выводит список файлов и подкаталогов в заданной директории. Утилита xargs принимает входные данные из стандартного ввода (stdin) и преобразует их в аргументы для другой команды.
Чтобы изменить формат фото с JPG на PNG с помощью этого способа, нужно написать следующую команду с использованием перенаправления ввода / вывода:
Читайте также: 12 практических примеров команды xargs для начинающих в Linux, xargs примеры.
Разберем подробнее каждую команду из введенной конструкции:
ls -1 cat.jpg— выводит название файлаcat.jpgна отдельную строку, используя опцию-1.|— конвейер, перенаправляющий вывод предыдущей команды в качестве входных данных для следующей.xargs -n 1— считывает название файлаcat.jpgи передает его в качестве аргумента последующей команде.bash -c— запускает новый экземпляр оболочки bash и использует опцию-cдля выполнения указанной строки как одной команды.convert "$0" "${0%.jpg}.png"— преобразовывает входной файл из формата JPG в PNG:$0— аргумент, который представляет название исходной фотографии;${0%.jpg}.png— аргумент, который определяет название выходной картинки, полученнe. путем замены расширения*.jpgна*.png.
Чтобы конвертировать PNG-изображение в JPG, просто поменяйте местами форматы фото в предыдущей команде, как показано ниже:
Вы также можете преобразовать сразу все картинки из каталога в другой формат. Для этого вместо названия конкретного фото напишите символ * (звездочку):
Преобразование формата с помощью команды parallel
Утилита parallel — инструмент, позволяющий запускать несколько команд или процессов параллельно за счет использования преимуществ нескольких ядер процессора. Инструмент считывает переданные ему команды, а затем одновременно выполняет каждую из них за счет распределения рабочей нагрузки по доступным ядрам процессора.
Синтаксис parallel следующий:
Где:
command— команда, которую Вы хотите запустить параллельно;[options]— опции, командыparallel;arguments— аргументы, которые будут обработаны командойcommand;:::— разделитель, который используется для отделения команды от входных элементов.
Чтобы установить parallel, введите в окне терминала команды.
Для Debian / Ubuntu:
Для RHEL / CentOS / Fedora:
Итак, преобразуем картинку cat.jpg в фото с расширением *.png:
Здесь:
- Символы
{}— представляют каждый входной элемент. - Символы
{.}— удаляют расширение исходного изображения. - Аргумент
.png— устанавливает формат*.pngдля выходной фотографии.
Для конвертирования PNG-изображения в JPG, просто поменяйте местами форматы фото в предыдущей команде, как показано ниже:
Лучше всего утилита parallel подойдет для группового преобразования картинок из одного формата в другой. Чтобы конвертировать все фото формата JPG из директории в PNG, введите в окне терминала:
Вы также можете использовать parallel вместе с командой ls для конвертирования форматов картинок:

Читайте также: 9 полезных команд для получения информации о процессоре (CPU) в Linux.
Изменение формата изображения с помощью цикла for
Еще один способ изменить формат изображения — использовать циклы. В Linux для пользователей доступен цикл for. Этот способ будет очень удобным, если Вы хотите изменить формат сразу у нескольких картинок. Чтобы преобразовать все фото формата JPG из директории на PNG или наоборот, используйте одну из следующих команд:
Однако, Вы можете конвертировать формат и одного фото, используя этот метод. Просто количество итераций цикла будет равняться одному. К примеру, изменение формата файла cat.jpg с JPG на PNG будет выглядеть так:
Преобразование формата картинки с использованием скрипта
Чтобы автоматизировать процесс изменения форматов изображений, лучше всего написать сценарий оболочки. Благодаря скриптам, Вам не нужно будет писать одну и ту же большую команду каждый раз в окне терминала. Чтобы конвертировать фото cat.jpg с JPG на PNG, создадим файл с расширением *.sh и впишем в него следующий код:
Читайте также: Bash-it — управления вашими скриптами и псевдонимами.
Далее сохраним этот файл и добавим права на его исполнение. После чего запустим скрипт:
Выводы
Мы рассмотрели четыре различных метода использования команды convert для преобразования изображений форматов PNG и JPG в Linux. Каждый из представленных способов обеспечивает быстрое конвертирование картинок.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.





























