21 ноября 2015

Как в Linux конвертировать изображения из PNG в JPG и наоборот, с помощью командной строки

Мы очень часто в повседневной жизни сталкиваемся с словом - Конвертировать. Конвертировать - преобразовывать из одного формата в другой. Это касается когда мы конвертируем/преобразовываем деньги из одной валюты в другую, например, евро в доллар или любую другую денежную единицу, конвертация в производстве, когда определённый вид продукции преобразовывается в иной, например, в металлургии получить металл путём обработки исходного продукта (руды) в конвертере (металлургическая печь) и т.п.
В данной статье пойдёт речь о конвертации (преобразовании) формата файла изображения из PNG в JPG и наоборот, с помощью командной строки.

Программа convert входит в набор программ (консольных утилит) для чтения и редактирования файлов множества графических форматов — ImageMagick.

Как использовать команду Convert

Прежде всего в вашей системе должна быть установлена программа ImageMagick. Если она не установлена, выполните следующую команду в терминале для установки в Ubuntu и производные:

sudo apt-get install imagemagick


После того как вы убедитесь, что ImageMagick установлен в системе, можно приступить к конвертации путём применения команды convert входной файл выходной файл.

Например, у меня в папке Изображения, файлового менеджера, находится снимок в формате .png:


Прежде всего необходимо войти в данную папку командой в терминале:

cd ~/Изображения

Примечание. Если у вас снимок находится в другой папке, то нужно войти в эту папку, изменив в команде Изображения на название данной папки. Например, если у вас снимок находится в папке Загрузки, то команда будет выглядеть: cd ~/Загрузки и т.п.

После того как вы вошли в искомую папку, выполните в терминале команду, которая конвертирует (преобразует) формат файла из .png в .jpg:

convert терминал.png терминал.jpg


Как видно на снимке, теперь после выполнения команды в папке Изображения у меня появился конвертированный снимок в формате .jpg.

Таким же образом можно преобразовать изображение и наоборот, из формата .jpg в .png.

Команда convert может быть использована более чем в 100 различных опциях.
Например, для изменения размеров снимка. Уменьшить размер изображения, прежде чем он превратится в формат .png:

convert терминал.jpg -resize 200 терминал.png



Для получения списка поддерживаемых форматов команды convert введите и выполните в терминале команду:

convert -list format


Удачи.

27 комментариев :

  1. Так скоро будете и редактировать фото в консоли))) выравнивать температуру с контрастом ... а потом и видео монтажом

    ОтветитьУдалить
  2. А можно ли и, если можно, то как конвертировать несколько снимков (папку со снимками) одним "заходом"?

    ОтветитьУдалить
    Ответы
    1. Например, как-то так:

      for f in *.jpg; do convert "$f" -resize 1000 "$f.png"; done

      конвертирует все файлы формата jpg в текущей папке в изображения формата png с масштабированием до 1000 пикс по горизонтали

      for f in *.jpg; do convert "$f" -resize 1000 "$f-conv.jpg"; done

      конвертирует все файлы формата jpg в текущей папке в изображения того-же формата с масштабированием до 1000 пикс по горизонтали и добавлением "conv" к имени

      Удалить
  3. ==Так скоро будете и редактировать фото в консоли))) выравнивать температуру с контрастом ... == Совершенно верно. С ImageMagick в консоли можно проводить множество операций с снимками: http://www.imagemagick.org/script/index.php

    ОтветитьУдалить
  4. Блин ! Вы всегда находите чем нас удивить .

    ОтветитьУдалить
  5. еще бы как добавить это в контекстное меню, чтобы при клике можно сразу же конвертировать выделенное

    ОтветитьУдалить
    Ответы
    1. Ну так на gnome-look.org полно Nautilus-скриптов для конвертации картинок. Их можно использовать и в Nemo (cinnamon) и в Caja (Mate). Отличие будет лишь в расположении папки скриптов, куда надо его положить (например, для Caja это /home/max/.config/caja/scripts, для nemo сейчас не помню, но можно погуглить), плюс ОБЯЗАТЕЛЬНО надо в тексте скрипта найти в редакторе (Ctrl+F) все переменные типа "$NAUTILUS_SCRIPT_ ....." и заменить на "$CAJA_SCRIPT_" или "$NEMO_SCRIPT_...." соответственно (и вообще везде в тексте, где встречается nautilus, заменить на caja или nemo). И все будет работать.

      Удалить
    2. Для Nautilus есть nautilus-image-converter - расширение Nautilus для массового изменения размера и поворота изображений в контекстном меню изображения.
      Для Nemo - nemo-image-converter

      sudo apt install nautilus-image-converter
      sudo apt install nemo-image-converter

      Удалить
    3. Можно и из репозиториев поставить готовое, как советует Владимир. Но в репах выбор ограниченный (особенно для Caja), поэтому я решил поделиться опытом, как можно переделать любой nautilus-скрипт под Mate или Cinnamon - может, кому и пригодится :)

      Удалить
  6. Вечер добрый зачем такие сложности ведь можно просто переименовать ...

    ОтветитьУдалить
    Ответы
    1. при переименование меняется всего лишь расширение файла, а формат останется прежним

      Удалить
    2. ==при переименование меняется всего лишь расширение файла, а формат останется прежним== Позвольте немного поправить. При простом переименовании меняется лишь название в расширении файла, но не формат! А главное что делает команда convert, это именно изменение формата файла. Чтобы было более понятно, приведу пример. Если переименовать железную руду в металл, она таковой не станет пока её не поместят в конвертер (металлургическая печь) и не сварят металл.

      Удалить
  7. Очень многие вещи в линуксе значительно проще и быстрей делать в терминале,чем в графике.Но это приходит с опытом.

    ОтветитьУдалить
  8. В Ubuntu Tweak раздел Администрирование - Сценарии. Там есть сценарии для преобразования изображений и они как раз для контекстного меню.

    ОтветитьУдалить
  9. Предложения в интернете по этому поводу сводятся к ручному редактированию файла /etc/mime.types, но это сложновато и почему-то не всегда срабатывает.
    http://askubuntu.com/questions/52138/how-do-i-change-the-icon-for-a-particular-file-type
    Более простое решение - сменить тему значков на такую, в которой предусмотрена отдельная иконка для fb2, попробуйте к примеру ZonColor (это целый комплект тем иконок в одном стиле, но в разной цветовой гамме, найдется вариант практически под любое оформление).
    http://gnome-look.org/content/show.php?content=156189

    ОтветитьУдалить
  10. CoolReader Поиск по сайту, или же Fbreader.

    ОтветитьУдалить
  11. ==CoolReader Поиск по сайту, или же Fbreader==
    Речь о не о программе для открытия файла, а об иконке файла в "проводнике". Fbreader, например, ее никак не меняет.

    ОтветитьУдалить
  12. ==Но то что мне надо касательно fb2 система его по умолчанию как неизвестный текстовый файл определяет==
    Странно. У меня в ArchLinux zoncolor fb2 с такой иконкой отбражается:
    [im]http://i.imgur.com/uAmB07S.png[/im]
    Возможно, способ установки как-то влияет. Если устанавливали вручную, лучше удалить и воспользоваться репозиторием.
    sudo add-apt-repository ppa:noobslab/icons
    sudo apt-get update
    sudo apt-get install zoncolor-icons

    Или deb-пакетом поставить по этой ссылке
    https://launchpad.net/~noobslab/+archive/ubuntu/icons/+files/zoncolor-icons_1.6.6%7Ewily%7ENoobsLab.com_all.deb

    ОтветитьУдалить
  13. ==Менял разные но итог один как определяет как текст==
    Ну да и Бог с ним, если подумать. Главное, чтоб по умолчанию открывалось в нужной программе :)

    ОтветитьУдалить
  14. zoncolorXtra-Ubuntuish-Light, Arch linux Mate. С любой темой из набора ZenColor на fb2 этот значок.

    ОтветитьУдалить
  15. ==А иконки в основном похожие на KDE по большей части==
    В /usr/share/icons/zoncolor/index.theme строчка
    Inherits=oxygen,elementary,Humanity,hicolor
    Вот оно из Oxygen недостающие иконки и берет в первую очередь. Это можно изменить при желании :)

    ОтветитьУдалить
  16. Вас всех наверное очень удивит - что все современные редакторы графики - ато фотошоп и гимп - построены на утилитах imagemagick

    ОтветитьУдалить
  17. Перепробовал разные скриншоты ни один не получилось конвертировать никакими силами:)
    Поверил в себя только после создания и конвертации файла "терминал" .Файлы должны быть без всяких знаков и пропусков между буквами и никаких заглавных.

    ОтветитьУдалить
    Ответы
    1. Имена и пути с пробелами и т.п. следует брать в кавычки, лучше - одинарные. Кроме того, перед пробелом можно поставить бэкслэш, например my\ file.png, чтобы пробел не воспринимался как разрыв. Вообще-то это азы работы с терминальными командами, хотя согласен - не все это знают.

      Удалить
  18. Доброго времени суток! Подскажите пожалуйста, почему при открытии изображений программой Gwenview, выскакивает такая надпись:
    ==Внутренняя ошибка
    Отправьте сообщение об ошибке на http://bugs.kde.org
    No such object path '/modules/kdeconnect/devices/e563e317407835cd/sftp'==
    Как её убрать?
    Linux Mint KDE 18

    ОтветитьУдалить
    Ответы
    1. kdeconnect гадит где-то, копайте в эту сторону.

      Удалить
    2. Посмотрите в свойствах файла John Smith, какой программой он открывается. Было такое у меня только с pdf.

      Удалить

Если у Вас появились вопросы или мнения, вы можете задать или оставить их здесь.
Спам и флуд будут жёстко караться вечной блокировкой их оставляющих!



If You have any questions or opinions about, just leave'em here.
Spamers & flooders will be blocked forever!!!