Всем известно, что работа со связанными (linked) файлами в Фотошопе - боль и унижение. Как только меняется путь к файлам, Фотошоп предлагает заменить ссылки вручную для каждого файла в макете. Хорошо, если их 1-2-3, но если под сотню да еще и из разных папок - проще плюнуть, чем перелинковывать вручную.
Общая информация:
Это скрипт для групповых операций со связанными файлами. При загрузке он анализирует слои и формирует список ссылок в документе. Красным помечены потерянные файлы (т.е. те, которые где-то валяются, но Фотошоп их не может найти самостоятельно), зеленым - файлы на месте и находятся в том же каталоге где и открытый файл, желтым - файлы на месте, но находятся в другом каталоге (решил выделить их отдельно, так как у меня многие макеты содержат элементы из других папок). Можно щелкать по списку и вручную указывать связи, можно использовать кнопку "связать заново", выполняющую поиск выделенных (либо всех файлов) на диске. Из выпадающего списка можно указать где искать - в том же каталоге, откуда открыт сам документ, либо в новом каталоге. Есть дополнительная опция учитывать расширение файла или нет (она нужна, если вы собрали макет с файлами одного типа, а потом конвертировали их в другой формат (например, для архивации)).
Интерфейс ru/eng (автоматически в зависимости от основного языка Фотошопа, либо вручную если убрать комментарий в 12 строке кода)
Помимо восстановления связей есть возможность собрать все файлы из документа в кучу - за это отвечает опция "собрать ресурсы в папке" (папка создается в том же каталоге, который вы используете для поиска файлов). Можно не указывать имя папки, либо наоборот указать дополнительные подкаталоги (например "макет/портреты"), опция группировки по типу позволяет автоматически разложить файлы по папочкам в зависимости от их типа (джипеги в папку JPG, тифы в папку TIF и т.п.). Самая коварная опция - "перемещать". Она работает по простому принципу - если файл найден в том же каталоге, то при сборе ресурсов он будет перемещен в новую папку. Если файл из другого каталога - только скопирован. Коварство этой опции в том, что API фотошопа не имеет команды "переместить", вследствие чего мне приходится выполнять сначала команды "скопировать", затем "удалить" (при этом удаление происходит непосредственно с диска, минуя корзину). Я постарался сделать все, чтобы перемещение файлов было безопасным (скрипт перед удалением файла всегда проверяет, было ли успешным копирование), но рекомендую использовать ее с осторожностью (не включать ее сразу на рабочих файлах, а сначала проверить, что все работает корректно).
Ссылка на скрипт (ресурсы форума): relink layers (код не обфусцирован, я сторонник open-source).
Ключевая особенность:
В процессе работы со скриптом выяснилось, что у меня многие макеты содержат не просто связанные файлы, а связанные файлы внутри смарт-объектов. При попытке открытия такого смарт-объекта появлялось окно Фотошопа с предложением обновить ссылку и весь смысл автоматизации терялся (чтобы обработать 20 файлов, нужно было 20 раз нажать "отмена" в этом окне). Потратил много времени, пытаясь решить эту проблему и нашел способ не только заглянуть внутрь смарт-объекта не открывая его, но и избежать появления окна Фотошопа с предложением перелинковать файлы при открытии таких слоев. К сожалению такая возможность поддерживается только в версии CC2020 и новее. В более старых версиях скрипт запустится, но опция "поиск связанных файлов в смарт-объектах" будет не активна (самую старшую версию, на которой он может запуститься не проверял, но скорее всего что-то в районе CC2018).
Скрипт писался и тестировался на W10/W11, на OSX я проверил лишь базовую совместимость (есть различия в том, как Фотошоп предоставляет информацию о потерянных файлах + столкнулся с небольшими различиями в реализации js-движка). Исправил то, что нашел, но полноценно не тестировал.
Известные проблемы:
- скрипт не поддерживает диалоговые окна, которые могут быть показаны при замене ссылки для некоторых типов файлов (например, для равок всегда будет появляться окно с предложением скорректировать настройки проявки), а при работе с многостраничными файлами (пдф, макеты из иллюстратора) будет импортирована только первая страница. Если вы работаете с такими файлами, то лучше ставить блокировку на подобные объекты (скрипт будет игнорировать слои с "замочком").
Пы.Сы.
У меня достаточно много скриптов общего назначения для Фотошопа, однако никогда не публиковал их на этом ресурсе. Если будет интерес - возможно пороюсь в закромах и найду еще что-то.
Общая информация:
Это скрипт для групповых операций со связанными файлами. При загрузке он анализирует слои и формирует список ссылок в документе. Красным помечены потерянные файлы (т.е. те, которые где-то валяются, но Фотошоп их не может найти самостоятельно), зеленым - файлы на месте и находятся в том же каталоге где и открытый файл, желтым - файлы на месте, но находятся в другом каталоге (решил выделить их отдельно, так как у меня многие макеты содержат элементы из других папок). Можно щелкать по списку и вручную указывать связи, можно использовать кнопку "связать заново", выполняющую поиск выделенных (либо всех файлов) на диске. Из выпадающего списка можно указать где искать - в том же каталоге, откуда открыт сам документ, либо в новом каталоге. Есть дополнительная опция учитывать расширение файла или нет (она нужна, если вы собрали макет с файлами одного типа, а потом конвертировали их в другой формат (например, для архивации)).
Интерфейс ru/eng (автоматически в зависимости от основного языка Фотошопа, либо вручную если убрать комментарий в 12 строке кода)
Помимо восстановления связей есть возможность собрать все файлы из документа в кучу - за это отвечает опция "собрать ресурсы в папке" (папка создается в том же каталоге, который вы используете для поиска файлов). Можно не указывать имя папки, либо наоборот указать дополнительные подкаталоги (например "макет/портреты"), опция группировки по типу позволяет автоматически разложить файлы по папочкам в зависимости от их типа (джипеги в папку JPG, тифы в папку TIF и т.п.). Самая коварная опция - "перемещать". Она работает по простому принципу - если файл найден в том же каталоге, то при сборе ресурсов он будет перемещен в новую папку. Если файл из другого каталога - только скопирован. Коварство этой опции в том, что API фотошопа не имеет команды "переместить", вследствие чего мне приходится выполнять сначала команды "скопировать", затем "удалить" (при этом удаление происходит непосредственно с диска, минуя корзину). Я постарался сделать все, чтобы перемещение файлов было безопасным (скрипт перед удалением файла всегда проверяет, было ли успешным копирование), но рекомендую использовать ее с осторожностью (не включать ее сразу на рабочих файлах, а сначала проверить, что все работает корректно).
Ссылка на скрипт (ресурсы форума): relink layers (код не обфусцирован, я сторонник open-source).
Ключевая особенность:
В процессе работы со скриптом выяснилось, что у меня многие макеты содержат не просто связанные файлы, а связанные файлы внутри смарт-объектов. При попытке открытия такого смарт-объекта появлялось окно Фотошопа с предложением обновить ссылку и весь смысл автоматизации терялся (чтобы обработать 20 файлов, нужно было 20 раз нажать "отмена" в этом окне). Потратил много времени, пытаясь решить эту проблему и нашел способ не только заглянуть внутрь смарт-объекта не открывая его, но и избежать появления окна Фотошопа с предложением перелинковать файлы при открытии таких слоев. К сожалению такая возможность поддерживается только в версии CC2020 и новее. В более старых версиях скрипт запустится, но опция "поиск связанных файлов в смарт-объектах" будет не активна (самую старшую версию, на которой он может запуститься не проверял, но скорее всего что-то в районе CC2018).
Скрипт писался и тестировался на W10/W11, на OSX я проверил лишь базовую совместимость (есть различия в том, как Фотошоп предоставляет информацию о потерянных файлах + столкнулся с небольшими различиями в реализации js-движка). Исправил то, что нашел, но полноценно не тестировал.
Известные проблемы:
- скрипт не поддерживает диалоговые окна, которые могут быть показаны при замене ссылки для некоторых типов файлов (например, для равок всегда будет появляться окно с предложением скорректировать настройки проявки), а при работе с многостраничными файлами (пдф, макеты из иллюстратора) будет импортирована только первая страница. Если вы работаете с такими файлами, то лучше ставить блокировку на подобные объекты (скрипт будет игнорировать слои с "замочком").
Пы.Сы.
У меня достаточно много скриптов общего назначения для Фотошопа, однако никогда не публиковал их на этом ресурсе. Если будет интерес - возможно пороюсь в закромах и найду еще что-то.
Последнее редактирование: