Вообще тема интересная, вижу пару применений в своих макетах.
Алгоритм придумал, но это та еще головоломка, конечно (напишу здесь, чтобы не забыть).
Скрипт принимает два параметра: коэффициент масштабирования символов от исходного (%), коэффициент поворота (градусы)
- создаем копию текстового слоя (на случай последующего редактирования)
- у исходного текста отрубаем прозрачность
- конвертируем копию текстового слоя в смарт объект
- открываем смарт-объект
- анализируем текст, находим все значимые символы (исключаем разделители слов и строк)
- чтобы сохранить читаемость текста (избежать накладывания букв друг на друга) сразу посимвольно меняем масштаб букв на случайную величину в пределах заданного процента
- чтобы сохранить оформление в виде эффектов копируем слой с полученным текстом по количеству символов
- проходимся по каждому слою, оставляя в каждом одну букву (попутно сохраняя стиль оформления текста/параграфа)
- отключаем видимость каждого слоя-буквы (чтобы не мешали в дальнейшем)
- возвращаемся к исходному тексту, делаем его копию, отрубаем эффекты и делаем весь текст черным (чтобы оформление текста не мешало нашему хитрому плану)
- создаем слой, заливаем его черным, помещаем в самый низ
далее в цикле:
- копируем исходный текст
- выбираем в нем n-букву, делаем ее белой, по сути создавая маску буквы
- даем фотошопу команду обновления интерфейса (чтобы он перерисовал букву в документе, иначе она так и останется черной)
- идем в каналы, создаем выделение по маске
- находим n-букву среди слоев
- выравниваем позицию n-буквы с нашей белой буквой
- удаляем временный слой с копией исходного текста
- после того как всё прогнали, удаляем фон, удаляем исходный текст
- теперь у нас каждый символ на отдельном слое. Проходимся по каждому трансформацией, поворачивая на произвольный угол в рамках заданного градуса.
- сохраняем и закрываем смарт-объект
Осталось найти время чтобы превратить идею в скрипт