Верстка фотоальбомов

Верстка фотоальбомов

Последние годы фотографы все чаще приобщаются к таинству обработки фотографий на компьютере. Привилегия спецов, работавших на специализированных графических станциях, с ростом мощности персональных компьютеров стала всеобщим достоянием. Однако рутинные операции по-прежнему выполняются вручную, время уходит на мелочи вроде выравнивания спрайтов по одной линии или многократного набора на клавиатуре текста, который вполне могла бы за вас сдублировать программа. Есть ли смысл ставить новый дорогой процессор в компьютер, если, вместо 10% загрузки, он получит 7%?

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

Обычной практикой у фотографов с "цифровиками" является отснять группу в детском саду (выпускном классе, на вечеринке в вузе, воинской части и т.д.) и тут же переименовать снимки по имени отснятых людей. В качестве образца я взял один снимок, который размножил и назвал "Петя Петров.jpg", "Ваня Иванов.jpg", "Вася Васильев.jpg" и т.д. В вашем случае, разумеется, снимки и имена файлов (людей) будут иными. Пока что все это безобразие представляет собой кучку файлов. Нам же предстоит сверстать из нее отдельный лист, оформить, подписать и отправить на печать. В качестве основного инструмента при работе с растровой графикой рекомендую использовать самую популярную в данном классе программу — Adobe PhotoShop.

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

Предполагается, что ваши снимки отсняты в одном месте и в одно время, т.е. имеют одинаковый размер, тип файла и уже не нуждаются в цветокоррекции. Для работы нам понадобится плагин, добавляющий в Фотошоп поддержку скриптов. Его можно скачать на http://www.adobe.com/products/photoshop/main.html . После установки плагина дополните его плагином ScriptingListener.8li из того же дистрибутива, он записывает все ваши действия в лог на языках VisualBasicScript и JavaScript — это поможет вам в написании скриптов. Для начала давайте запишем экшен (в других программах это называется макросом), который будет рисовать вокруг снимка рамочку, подписывать портретик и помещать его на общий большой лист. Поскольку для подписывания картинки стандартных средств не предусмотрено, то предварительно стоит создать скриптовый файл (например, "c:\temp\subscribe.js"), который пока можно оставить пустым. Затем создаем в Фотошопе новый файл ("Untitled-1", 15х21 см, 300dpi) и загружаем любой из подготовленных фотоснимков.

1. в палитре Actions создаем новый экшен щелчком по белому листочку в нижней части палитры.

2. изменяем размер изображения. Поскольку в данном примере будут присутствовать 12 снимков и размер листа выбран под один из стандартных форматов фотобумаги (15х21 см), то размер портретика должен быть примерно 3х5 см: (Image / Image Size… / height=5 cm, resolution=300 dpi).

3. обрезаем края фотографии для точного соответствия результата избранному размеру: (Image / Canvas Size… / width=3 cm).

4. теперь пора сделать рамочку. Инструментом выделения Elliptical Marquee Tool нарисуем овальное выделение и скопируем выделенную часть снимка на новый слой [Ctrl+J]. Обратите внимание: при записи экшенов лучше всего пользоваться не мышью, а горячими клавишами (быстрее) или пунктами меню (нагляднее) — это позволит в дальнейшем избежать ошибок при отладке экшенов. Пользоваться мышью стоит в том случае, когда точно знаете, какое действие будет произведено и как Фотошоп опишет его в экшене.

5. нужно удалить слой с целой фотографией. Выбираем предыдущий слой [ "Ctrl+["] и удаляем его (Layer / Delete / Layer).

6. рисуем собственно ободок. Восстанавливаем выделение (Ctrl+щелчек по слою), немного сжимаем его, на 10-12 пикселей (Select / modify / contract…), и инвертируем выделение [Ctrl+Shift+I].

7. копируем выделенный край снимка на новый слой [Ctrl+J].

8. сейчас рамка не видна, так как изображение на ней совпадает с изображением на снимке, поэтому переходим в окно редактирования эффектов (двойной щелчок по слою в палитре слоев). Присваиваем эффекты Тень (Drop Shadow), Рельеф (Bevel and Emboss) и Заливка Градиентом (Gradient Overlay).

9. склеиваем слои [Ctrl+Shift+E].

10. теперь нам нужно подписать фотографию. Конечно, можно набрать имя и фамилию ручками (один раз сделать это все-таки придется), но нам нужно ускорить работу, посему сейчас останавливаем запись экшена и создаем скрипт, который будет записывать нужную строчку в новый текстовый слой.
Перво-наперво очистим текстовый файл "ScriptingListenerJS.log" в корневой директории нашего системного диска. После установки плагина для поддержки скриптов Фотошоп записывал в него все действия на языке JavaScript.
Затем переключимся обратно в Фотошоп и создадим новый текстовый слой: выравнивание по центру, шрифт Arial Black, размер на ваше усмотрение, имя в первой строке, фамилия — во второй. Присвоим надписи нужный стиль (например, градиент, тень). Теперь открываем файл "ScriptingListenerJS.log" и копируем его содержимое в скрипт "c:\temp\subscribe.js", предусмотрительно нами созданный до начала работы над фотографией. Приблизительно в 10-12-й строке скрипта вы найдете строчку с введенными именем и фамилией, между ними будет находиться значок, который, теоретически, должен означать перенос строки. Теория не срабатывает, поэтому меняем его на знаки "\ r", что означает перенос строки в синтаксисе JavaScript.
Позже скрипт придется модифицировать, но пока он может отработать свое на тестовых запусках. Готовый же текстовый слой удалите, так как он должен создаваться скриптом в ходе исполнения экшена. Сделаем это:

11. удаляем текстовый слой.

12. в палитре экшенов щелкаем на кнопке записи (красный кружок). Продолжаем запись. Текстовый слой мы удалили, поэтому вызовем созданный скрипт и отрисуем его заново (File / Automate / Scripts… / Browse… / "c:\temp\subscribe.js").

13. объединим слои [Ctrl+Shift+E].

14. правой кнопкой мыши щелкнем по полученному единственному слою (в палитре слоев) и выберем в выпадающем меню опцию "Duplicate layer". В диалоговом окне дублирования слоя выберите пунктом назначения (Destination) документ "Untitled-1", который мы создали еще до начала записи экшена. Копия портрета появится в новом слое документа "Untitled-1".

15. закрываем текущий снимок, не сохраняя его [Ctrl+W].

16. останавливаем запись экшена [Esc].

Теперь нам нужно так модифицировать скрипт, чтобы он прописывал в текстовом слое не два жестко заданных слова, а имя и фамилию человека, которые у нас содержатся в имени файла. Для этого в строке скрипта, которую мы уже изменяли, следует поменять фрагмент "Имя\rФамилия" на имя переменной, в которую мы загрузим нужный текст — например, "tmp_name" (без кавычек).
Эта переменная пока не создана, поэтому в самом начале файла "subscribe.js" вставляем:

var tmp_doc=activeDocument;
//обрабатываем текущий документ
var tmp_string=tmp_doc.name;
//загружаем имя документа
var tmp_name="";
//инициализируем переменную, в
//которой это имя будет
//содержаться после обработки.
for (counter=tmp_string.length-5;counter> =0;counter--)
//организуем цикл, который отбросит
//расширение файла и обработает
//все знаки в имени файла…
if (tmp_string[counter]==" ")
tmp_name="\r"+tmp_name
//…заменив пробелы на перенос строки
else

tmp_name=tmp_string[counter]+tmp_name;

Теперь удаляем из будущей странички альбома единственный перенесенный на нее портретик (мы ведь не будем перетаскивать их по одному) и запускаем пакетную обработку снимков (File / Automate / Batch), натравливая свеженький экшен на папку с исходными фотографиями.

Буквально через минуту вы получите файл, состоящий из белой подложки (background), которую можно заменить на любой нейтральный рисунок. В нем много слоев, но ориентироваться в них очень просто, благодаря тому, что наши экшен-скрипты при подписывании портретов автоматически называли слой по имени файла (а значит, по имени человека, чье изображение находится в файле). Верхнюю часть страницы займет надпись (обычно это название некой организации и год съемок). Осталось только распределить портреты по странице. Проще и быстрее это можно сделать, перетаскивая портреты при включенной привязке к сетке (View / Snap) либо сцепив слои, находящиеся в одном ряду (столбце), и дав команду выровнять и распределить сцепленные объекты (Layer / Distribute Linked, Layer / Align Linked).

Вот и все. Творческих вам успехов — ведь теперь вы можете тратить силы именно на творчество, а не на бездумное повторение простейших действий. До встречи на страницах КГ,

Поляков Александр, Lecosson@mail.ru


Компьютерная газета. Статья была опубликована в номере 32 за 2003 год в рубрике soft :: графика

©1997-2024 Компьютерная газета