Кулинарная книга для правого клика
Обзор утилиты OnMyCommand. Часть вторая
[ 25 октября, 2007 г ]Автор: А. Лузин

Пример 6: Ресайз, как много в этом звуке!

Очень часто нам приходится изменять размеры изображений. Например, перед загрузкой цифрового снимка в интернет или пересылкой другу. Существует масса бесплатных утилит, которые позволяют выполнять групповой ресайз картинок по указанным параметрам, однако что может быть проще и быстрее, чем правый клик?

Среди команд, доступных на сайте OnMyCommand, ничего подобного нам не предлагается, поэтому придется создавать новый пункт с нуля. Во всех предыдущих примерах нами были использованы исключительно скрипты UNIX, позволяющие выполнять операции с именами и файлами.

Однако для изменения размеров фотографий этих команд недостаточно - здесь нам понадобится программа для обработки изображений, причем с поддержкой интерфейса командной строки.

Самая простая из таких утилит уже имеется в системе Mac OS X и называется sips. Используя команду sips -h в Терминале, мы можем узнать, как работать с этой программой. Согласно справочной информации, строка запуска приложения набирается в формате:

sips [image-query-functions] imagefile

Среди доступных функций нам в данном случае интересны -z и -Z. Первая позволяет указать количество пикселей по ширине и высоте, вторая - количество пикселей по большей стороне.

Если мы хотим сделать команду, которая станет универсальной для всех файлов с изображениями, то нам лучше выбрать функцию -Z, так как это позволит изменять любые картинки с сохранением пропорций ширины и высоты, независимо от их первоначальных размеров. После функции указывается ее числовое значение в пикселях, для нашего случая возьмем величину 1000. Вместо пути к файлу мы будем подставлять в строку объект __OBJ_PATH__, который сам извлекает маршрут по правому клику. Учитывая все вышеизложенное, наша команда в редакторе OMCEdit будет иметь вид:

sips -Z 1000 __OBJ_PATH__

Команда написана. Теперь остается указать ее параметры в интерфейсе редактора:

Activation Mode: File. Наша команда предназначена для работы с файлами, поэтому она не должна отображаться при щелчке на папке или рабочем столе.

Вкладка Files: Extensions. В этот список вносим расширения нужных графических форматов, чтобы команда не была доступна для файлов других типов. Если мы собираемся использовать ее для обычных файлов фотографий из цифровых мыльниц, то будет достаточно расширений JPG и JPEG.

Новая команда для ресайза изображений:

На этом создание команды завершено. По желанию, мы можем расширить ее возможности:

- Учитывая морфологическую специфику фразы «Изменить размеры изображения», при выделении сразу нескольких файлов название пункта должно выглядеть как «Изменить размеры изображений». Укажем эту опцию в строке Command Name Plural.

- Дописать к строке команды функцию -i, что позволит не только изменять размеры изображения, но и устанавливать его превью вместо стандартной иконки файла.

- Создать несколько таких команд с разными значениями большей стороны и вынести их в общее подменю, откуда нужный пункт будет выбираться в зависимости от ситуации.

- Создать одну универсальную команду с нефиксированным значением большей стороны, позволяя указывать этот параметр каждый раз при выборе пункта меню. Для этого вместо постоянного числового значения 1000 пикселей используем объект __INPUT_TEXT__, который выводит на экран диалоговое окно с текстовой формой.

После внесения этих изменений, наша команда будет выглядеть следующим образом:

sips -Z __INPUT_TEXT__ -i __OBJ_PATH__

Также не забываем открыть вкладку Input и указать свои текстовые подписи для диалогового окна.

Использование дополнительного диалогового окна для ввода числового значения:

Команда «Изменить размеры изображений» в действии:


Источники: МакЦентр

Комментарии, обсуждение