Как автоматизировать Photoshop через кодинг
Когда говорят об автоматизации, чаще всего имеют в виду Python. Но важно понимать: Photoshop не выполняет Python-код напрямую.
Зато у него есть встроенная поддержка скриптов — Photoshop умеет исполнять код на JavaScript (ExtendScript).
Это не «JS как в браузере» и не замена Python. Это родной язык автоматизации Photoshop, с прямым доступом к:
слоям
тексту
смарт-объектам
экспорту файлов
истории документа
Если задача — управлять самим Photoshop, то скрипты внутри Photoshop — самый надёжный путь.
Что это даёт на практике
Через код можно:
массово менять текст в PSD
генерировать сотни изображений из одного шаблона
автоматизировать экспорт
исключить Actions и Variables с их ограничениями
По сути, мы описываем действия, которые дизайнер делает руками, но в виде кода.
Пример задачи
Есть:
один PSD
текстовый слой
значения 1 м → 100 м
Нужно:
автоматически подставить значения
сохранить 100 PNG-файлов
вернуть PSD в исходное состояние
Пример скрипта для Photoshop (JSX)
#target photoshop var doc = app.activeDocument; var layerName = "1 м"; // имя текстового слоя var outputFolder = Folder.selectDialog("Выбери папку для сохранения"); if (!outputFolder) { alert("Папка не выбрана"); exit(); } function findTextLayer(layerSet) { for (var i = 0; i < layerSet.layers.length; i++) { var layer = layerSet.layers[i]; if (layer.kind == LayerKind.TEXT && layer.name == layerName) { return layer; } if (layer.typename == "LayerSet") { var found = findTextLayer(layer); if (found) return found; } } return null; } var textLayer = findTextLayer(doc); if (!textLayer) { alert("Текстовый слой не найден"); exit(); } for (var i = 1; i <= 100; i++) { textLayer.textItem.contents = i + " м"; var file = new File(outputFolder + "/pkabel_4x2_5_" + i + "m.png"); var opts = new PNGSaveOptions(); opts.compression = 9; doc.saveAs(file, opts, true, Extension.LOWERCASE); } // откат без сохранения doc.activeHistoryState = doc.historyStates[0]; alert("Готово!");
