НовостиОбзорыСобытияIT@WorkРеклама
Open Source:

Блог

Практичность консольных приложений: ImageMagick

Специфика деятельности сотрудника, работающего по модели BYOD (всё-таки пора уже придумать ему какое-то короткое и понятное название — бжодер, бъёдер или что-то ещё), заключается в ориентированности на конечный результат. И, как следствие этого, в необходимости часто выходить за рамки своей служебной компетентности.

Речь даже не про техническое обслуживание собственной системы — к этому, по большому счёту, все готовы. А про какие-то дополнительные работы, о которых заранее человек даже предположить не мог.

[spoiler]Недавно приятель вернулся из командировки, зашёл в гости и рассказал историю, которая мне представляется довольно типичной. Подробностями я не особо интересовался, но суть была в том, что ему потребовалось оформить фотографии — в левый верхний угол поместить надпись, а весь снимок «взять» в небольшую однотипную «рамку». Узнал он про это, как водится, вечером, хотя результат был нужен на следующее утро. А фотографий — где-то примерно сотня.

Поскольку товарищ никогда раньше фотографии не редактировал, то он пошёл по самому простому, на его взгляд, пути. При помощи графического редактора LibreOffice Draw он вручную обработал все снимки, предварительно разобравшись, как это делается. При этом, добиваясь хотя бы примерного единообразия. Про сон, разумеется, пришлось забыть.  

А теперь я подхожу к главному тезису этой заметки. Для непрофессионала значительно проще пользоваться текстовыми утилитами, а не программами с графическим интерфейсом. Даже в таком явно «визуальном» процессе, как обработка фотографий. Применение команды на практике означает, что пользователь всего-навсего «объясняет» машине, что она должна сделать. И «переводит» команду на «понятный» машине язык.

Я точно такой же «чайник» в изобразительном искусстве, как и мой приятель. Но ту же самую работу смог выполнить за полчаса. Полминуты на формулировку задачи, двадцать минут на чтение инструкции к программе ImageMagick, остальное — на написание самой команды методом проб и ошибок.

Потом для проверки запустил её в каталоге с фотографиями, сделанными мной этим летом в Зеленоградске. Минут через 20 (как раз чай попили) машина обработала около 200 снимков, причём идеально единообразно.

Вот так выглядит команда на «понятном» для машины языке:
mkdir result ; for i in *.JPG; do convert -border 40 -bordercolor gray -fill white -font Liberation-Sans-Italic -pointsize 72 -draw 'text 80 100 "Зеленоградск — 2014"' "$i" "result/$i"; done


По-моему, тут даже комментарии не нужны. Команда настолько проста, что с человеческого языка на машинный она переводится очень быстро.

А вот так выглядит результат:

Шумаков Вячеслав
Вам бы лишь поспорить. В большинстве случаев script-fu автоматом устанавливается и пользователь об этом не догадывается. И с чего вы взяли, что в Bimp каждую фотографию нужно отдельно обрабатывать? Можно даже загрузить папку или кучку файлов а наборы действий можно сохранить под внятными названиями с расширением *.bimp если это необходимо.
Шумаков Вячеслав
Вот еще один вариант без консоли — проприетарное но вполне годное решение для "бжодера" в т.-ч. линуксоида —  XnviewMP.
выделяем в окне обозревателя группу файлов щелкаем правой кнопкой мышки -> выбираем команду "Пакетное преобразование" -> Для создания рамки добавляем действие «Добавление маски». В настройках действия выбираем маску из стандартного набора.либо создаем свою маску в любом фоторедакторе (сама маска черного цвета а место под фотку либо белое либо прозрачное). Настройками действия можно варьировать прозрачность, цвет и другие параметры маски. Можно файл маски в gimp создать с помощью команды «фильтры - декорация - добавить рамку» и сохранить в png или gif  или даже в jpeg (напоминаю — градации черного цвета в этом файле будет восприниматься как степень непрозрачности а белый как абсолютно прозрачный. -> Для создания надписи добавляем действие «Добавить текст» и извращаемся там как хотим с текстом.
Если вам и это трудно понять как бжодеру, то я не знаю. Хотя я знавал бжодеров, которые знали где качнуть пиратский фотошлеп и приходили на работу с ноутом, обвешанным последними новинками софтвея. Поразительно, найти где пиратку качнуть мозгов хватает а изучить то, что можно бесплатно использовать — сразу тупыми становимся.

В любом случае — это не сложнее ковыряния в консоли, предлагаемое вами. Ну может быть толщина рамки в этом варианте не будет одинаковая со всех краев, так как маска создается под конкретный размер.
Upd 1. Пардон, не туда коммент добавил. Считайте его новой веткой.

Upd 2. Докопался таки. Можно в XnView рамку и без маски добавить. Добавить действие -> РАзное -> Обрамление. Все, И идем пить кофе с булочками.  :D
Шумаков Вячеслав
вот вы мне скажите, как выдать из консоли на листе формата A4  мелкие превьюхи фоток в 3 столбца по 4 строки с подписью к каждой превьюхе, где полное имя файла (то есть путь плюс имя с расширением) указано. А я посмеюсь  :D
Поверьте мне на слово — эта операция более востребована, чем случай, который вы описали
UPd И здесь лучше geeqie зверя нет!