Пакетное преобразование изображений в Linux

В Linux есть много «смотрелок» изображений — Gwenview, F-spot, Eye of GNOME, Shotwell, DigiKam и так далее, и так далее. Но ни одна из них не может толком обрабатывать изображения в пакетном режиме. В Windows есть XnView или Irfan View или что-то ещё для этого — три раза тыкнул мышкой — поехали. Для Linux же я такого софта не нашел нашел — Phatch, но он показался мне по сравнению с XnView неудобным — сразу не разберешься. Есть еще Kim для KDE 4 — утилита, встраивающаяся в контекстное меню и позволяющая производить некоторые операции над изображениями в пакетном режиме. Она не работает в Gnome. XnView есть для Linux, но он настолько убог и стар, что я не стал его использовать.

Всё же, мое нежелание перезагружаться в Windows было достаточно велико, чтобы немного исследовать эту проблему и найти из неё выход. Это не GUI-решение, но тоже сойдет. В поисках по форумам я натолкнулся на предложения об использовании Image Magick для этой задачи. Где-то предлагалось использовать при вызове команды convert маску файлов, где-то — цикл. И там, и там возникали косяки с выполнением задачи. convert не поддерживает файловые маски (*.jpg например), это можно найти и в man convert. Команда принимает на вход только один файл. Цикл использовать есть резон (для меня, по крайней мере) внутри скрипта, писать всю эту колбасу команд одной строкой в терминале — то ещё удовольствие. А мне хотелось как можно короче и лаконичнее. Тут я и вспомнил про команду xargs, ну и набросал такую строчку в терминале:

1
$ ls *.jpg | xargs -I {} -t convert -quality 75 {} "new_{}"

Данной командой я составил список jpeg-изображений и отправил их на выполнение через xargs в команду convert для ужатия до качества 75. Просто, как ведро огурцов 🙂

Можно кстати и усложнить — все зависит от задачи. Image Magick может очень много, подробнее — man convert. Тем не менее, я продолжаю искать более простое решение для подобных задач — хоть я и умею писать shell-скрипты, всё же не считаю, что требование знания shell-scripting для обработки изображений является сколько-нибудь логичным.

UPD: Удивительное дело, только что прочитал, что где-то с января месяца разработчики XnView стали пилить кроссплатформенную версию для трёх операционок сразу. Также, есть отдельная утилита от тех же разработчиков для пакетной обработки изображений. Сейчас она в стадии beta-тестирования. Deb-пакетов нет, побежал сливать и собирать 🙂 .

Похожие статьи:

  • Нет похожих статей
Запись опубликована в рубрике Linux с тэгами . Создать закладку на запись. Оставить комментарий или trackback: Trackback URL.

2 комментариев

  1. ness
    Опубликован 8 мая 2016 в 13:47 | Прямая ссылка

    огромное спасибо! то, что нужно. я прям обыскался этой команды') пытался через for f in...do... делать, не вышло. а если серьезно — очень полезная вещь. для разных типов файлов в каталоге использовал просто ls -1 | xargs -I {} -t convert -quality 75 -resize 1000 {} «converted_{}», что мне и требовалось').

Оставить комментарий

Ваш e-mail никогда не будет опубликован или передан третьим лицам. Обязательные поля отмечены *

*
*