Ведро огурцовВ 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, ну и набросал такую строчку в терминале:

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

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

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

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