Общий раздел > Цифровая обработка изображений
Скрипт для формирования "пляшущего Текста".
iv131:
Подскажите, вроде видел где-то скрипт для разбора текста на отдельные буквы. Не могу найти.
Можно ведь на его основе сделать "пляшущий текст". Чтобы все буквы слегка произвольно меняли наклон, масштаб?
jazz-y:
Я бы тоже хотел на этот скрипт посмотреть.
При работе с текстом в Фотошопе есть одна проблема - очень сложно рассчитать позицию отдельной буквы (кроме классических метрик для текста Фотошоп использует еще и кучу собственных параметров, в частности параметры афинной трансформации). То есть разбить текст на буквы так, чтобы они стопочкой наложились друг на друга - легко. Разбить так, чтобы они в точности повторили текст из которого взяты - сложно. У меня была идея заменять буквы на пробелы и растеризовать текст, но это работает только для моноширинных шрифтов (которых не очень много и редко в дизайне используются), также пробовал отделять символы друг от друга по маске прозрачности, но это не работает с рукописными курсивами или при плотной верстке.
В общем, повернуть и масштабировать рандомно - не проблема. А вот разбить на буквы - задница.
iv131:
Вспомнил. В фотошопе в 3d после выдавливания есть такая функция, разбить на составляющие.
jazz-y:
Вообще тема интересная, вижу пару применений в своих макетах.
Алгоритм придумал, но это та еще головоломка, конечно (напишу здесь, чтобы не забыть).
Скрипт принимает два параметра: коэффициент масштабирования символов от исходного (%), коэффициент поворота (градусы)
- создаем копию текстового слоя (на случай последующего редактирования)
- у исходного текста отрубаем прозрачность
- конвертируем копию текстового слоя в смарт объект
- открываем смарт-объект
- анализируем текст, находим все значимые символы (исключаем разделители слов и строк)
- чтобы сохранить читаемость текста (избежать накладывания букв друг на друга) сразу посимвольно меняем масштаб букв на случайную величину в пределах заданного процента
- чтобы сохранить оформление в виде эффектов копируем слой с полученным текстом по количеству символов
- проходимся по каждому слою, оставляя в каждом одну букву (попутно сохраняя стиль оформления текста/параграфа)
- отключаем видимость каждого слоя-буквы (чтобы не мешали в дальнейшем)
- возвращаемся к исходному тексту, делаем его копию, отрубаем эффекты и делаем весь текст черным (чтобы оформление текста не мешало нашему хитрому плану)
- создаем слой, заливаем его черным, помещаем в самый низ
далее в цикле:
- копируем исходный текст
- выбираем в нем n-букву, делаем ее белой, по сути создавая маску буквы
- даем фотошопу команду обновления интерфейса (чтобы он перерисовал букву в документе, иначе она так и останется черной)
- идем в каналы, создаем выделение по маске
- находим n-букву среди слоев
- выравниваем позицию n-буквы с нашей белой буквой
- удаляем временный слой с копией исходного текста
- после того как всё прогнали, удаляем фон, удаляем исходный текст
- теперь у нас каждый символ на отдельном слое. Проходимся по каждому трансформацией, поворачивая на произвольный угол в рамках заданного градуса.
- сохраняем и закрываем смарт-объект
Осталось найти время чтобы превратить идею в скрипт ::)
jazz-y:
Наконец-то появилось немного времени, быстренько набросал скрипт:
http://www.youtube.com/watch?v=q1DLwo-nAwg
В принципе, сделал всё как хотел: сохраняются эффекты текстового слоя, сохраняются стили оформления самого текста.
Масштаб и угол задаются случайным образом в рамках заданных значений. scale - это процент увеличения/уменьшения, angle - максимальный угол наклона букв (вправо или влево). Т.е. при необходимости можно открыть файл скрипта и поменять эти значения.
--- Код: ---scale = 40, // percent
angle = 15;
--- Конец кода ---
файл со скриптом по ссылке:
https://yadi.sk/d/Yc8Q6jnScd9aAA
Навигация
Перейти к полной версии