[PS CC2024] Скрыть Смарт-объект (видимо скриптом)

Любимцев

Топикстартер
15 лет на форуме
Сообщения
5 014
Реакции
2 200
т.е. огульно любой смарт, без привязки к имени слоя (они могут быть разными)
Пока нашел вот это Selecting all smart objects outside canvas? | Community
но он "за пределами холста" и удаляет.
Мне — вполне в пределах, и удалять не надо
1770413729074.png
 
Последнее редактирование:
Ты какой-нибудь ИИ знаешь?

Я хочу скрыть (не удалить, а именно скрыть) любые смарт-объекты, которые есть в открытом файле.
Без проблем! Это отличная задача для автоматизации, так как вручную перебирать десятки слоев и групп — то еще удовольствие.
Ниже представлен скрипт на JavaScript (ExtendScript), который рекурсивно (то есть заглядывая внутрь каждой группы/папки) находит все смарт-объекты и выключает их видимость.


JavaScript:
#target photoshop

function hideSmartObjects() {
    if (app.documents.length === 0) {
        alert("Нет открытых документов!");
        return;
    }

    var doc = app.activeDocument;

    // Функция для обхода слоев (включая вложенные группы)
    function processLayers(layers) {
        for (var i = 0; i < layers.length; i++) {
            var currentLayer = layers[i];

            // Если это группа слоев, заходим внутрь
            if (currentLayer.typename === "LayerSet") {
                processLayers(currentLayer.layers);
            }
            // Если это обычный слой и его тип — Smart Object
            else if (currentLayer.kind === LayerKind.SMARTOBJECT) {
                currentLayer.visible = false;
            }
        }
    }

    // Запускаем процесс с верхнего уровня
    processLayers(doc.layers);
    
    alert("Готово! Все смарт-объекты скрыты.");
}

// Оборачиваем в suspendHistory, чтобы можно было отменить всё одним нажатием Ctrl+Z
app.activeDocument.suspendHistory("Hide All Smart Objects", "hideSmartObjects()");
 
  • Спасибо
Реакции: Любимцев
Ты какой-нибудь ИИ знаешь?
так вроде их все ругают.
тем более я в этом вообще не бум-бум...
2) попутно понял... а как скрипт запустить через Батч, ну чтоб указать папку из которой берутся эти самые файлы (их могут быть сотни)
 
У тебя ж задача: а) элементарная б) даже если грамотный специалист укоротит код на 80%, то так ли это ускорит твою работу с твоими файлами?
 
  • Спасибо
Реакции: Любимцев
Последнее редактирование:
  • Спасибо
Реакции: Любимцев
Последнее редактирование: