Если вам понравилась макрокоманда Spatter Frame, то у вас неминуемо возникнет желание адаптировать ее в соответствии со своими потребностями. Некоторую часть этой работы можно проделать, не изменяя макрокоманду. Например, можно изменять параметры фильтра для того, чтобы задавать степень неровности краев. По умолчанию данная макрокоманда при выполнении не запрашивает никаких параметров, а пользуется заданными при ее записи. Вы можете указать макрокоманде на необходимость выдачи запросов относительно любой команды, имеющей какие-либо параметры. Продемонстрируем на примере параметров фильтра Spatter.
Заметьте, что каждое новое выполнение макрокоманды создает новый снимок исходного состояния документа. Это очень полезно, но не всегда необходимо. Например, если вы подбираете параметры команд,то с каждой пробой будет появляться новый снимок. С другой стороны, удалять команду создания снимка тоже нежелательно - можно безвозвратно потерять результаты предыдущей работы,еслимакрокоманданеподойдет. Выход в том, чтобы временно отменить выполнение ненужной команды.
В этом разделе описывается создание простейшей, но очень полезной макрокоманды, позволяющей центрировать изображение на текущем слое. Воспользуемся одной особенностью команды Paste: она размещает изображение точно по центру слоя. Для записи макрокоманды подойдет любое изображение, имеющее слой Background и еще один слой. То изображение, которое уже находится на экране, удовлетворяет этим критериям. При создании макрокоманды будем предполагать, что слой, который требует центровки, к моменту запуска макрокоманды активен.
Совет. Когда вы создаете свою макрокоманду, указывайте с чем она работает. Если макрокоманда требует для работы изображения на отдельном слое, укажите в скобках "Layer". Если же для ее функционирования необходима выделенная область, укажите "Selection". Такие обозначения приняты при обмене макрокомандами.
Совет. Если при записи макрокоманды вы ошибочно сделали не то действие и сразу же это обнаружили, выберите команду Undo меню Edit. Ошибочная команда из палитры Actions при этом не исчезнет, но изображение вернется в предыдущее состояние. Далее просто введите верную команду. Оставшуюся в палитре неправильную команду несложно удалить после завершения записи. Для этого нужно просто перетащить строку команды к пиктограмме удаления.
Настоятельно советуем каждую созданную вами макрокоманду снабжать комментарием, описывающим ее требования к начальному состоянию документа, ведь для работы одной требуется объект, расположенный на слое, для другой -выделенная область, для третьей -отсутствие слоев и т. п. Когда у вас появится библиотека макрокоманд, вам, вероятно, уже будет сложно запомнить детали функционирования каждой из них.
В программировании, даже таком элементарном, требуется, чтобы программа освобождала все занятые ресурсы компьютера. Данная макрокоманда этому требованию не удовлетворяет, поскольку в буфере обмена осталось все содержимое слоя. Если изображение достаточно велико, то занятая память отрицательно скажется на производительности программы; С другой стороны, при переключении на любую другую программу и обратно, будет происходить передача содержимого буфера обмена между ними. Эго приведет к назойливой задержке. В качестве самостоятельной работы дополните макрокоманду командой Purge из меню Edit.
Примечание. Чтобы записать контур в макрокоманду, нужно его предварительно создать, а затем воспользоваться командой Insert Path меню палитры Actions. При проигрывании макрокоманды контур будет воспроизведен на новом изображении. Запись макрокоманд в Photoshop имеет значительные ограничения. Во-первых, не записываются действия инструментов рисования (Brush, Stamp, Eraser и пр.). Во-вторых, нет возможности управления ходом выполнения макрокоманды. Макрокоманда не может вызывать различные команды в зависимости от каких-либо условий, нельзя организовать циклическое выполнение группы команд, получение и использование информации о состоянии документа (размер, разрешение, цветовая модель, количество и типы слоев и каналов и т.п.).
Любой макрокоманде вы можете поставить в соответствие горячую клавишу. Назначим горячую клавишу созданной вами в предыдущем разделе макрокоманде Center (Layer).
Если вы планируете и дальше использовать созданную макрокоманду или перенести ее на другой компьютер, то ее необходимо сохранить в файле. Сохранить одну макрокоманду из набора невозможно, сохраняется только набор целиком. В созданном вами наборе My Actions находится пока единственная макрокоманда Center (Layer), поэтому сохранение набора будет эквивалентно сохранению единственной макрокоманды.
Даже столь примитивные макрокоманды, как те, которые предлагает Photoshop, могут потребовать отладки. Созданная вами макрокоманда может сразу работать не так, как вы ожидаете, или не заработать вовсе. Самый простой способ локализации ошибок - визуальный контроль правильности выполнения каждой команды в окне документа. По умолчанию Photoshop не дожидается отрисовки экрана после каждого шага макрокоманды и отследить что-либо наблюдая за изображением невозможно. Специально для подобных задач программа позволяет уменьшить скорость воспроизведения макрокоманды.
Программисты знают, что главный способ отладки программ - трассировка, то есть пошаговое выполнение. Photoshop также дает возможность исполнения макрокоманд по шагам, отдельным командам. Для того чтобы запустить макрокоманду в режиме трассировки, следует щелкнуть на пиктограмме воспроизведения в палитре Actions, удерживая при этом клавишу Ctrl. После того, как критический (не работающий) участок пройден, можно щелкнуть на пиктограмме воспроизведения без клавиши Ctrl, и макрокоманда доработает до конца. Другой способ отладки - установка точек останова (в программировании они называются Breakpoints). В критическом месте макрокоманды вы можете вставить команду Insert Stop... меню палитры Actions, а затем начать трассировку или просто посмотреть, в каком состоянии находится документ. палитры , а затем начать трассировку или просто посмотреть, в каком состоянии находится документ. И наконец, вы можете временно исключить команду или несколько команд из макрокоманды, чтобы посмотреть, что произойдет, если они не будут выполнены.