От действий Photoshop до сценариев Photoshop? - PullRequest
15 голосов
/ 27 апреля 2011

Я бы хотел, чтобы Photoshop автоматически выполнил следующую задачу для данной папки:

  1. Загрузите все файлы PNG в данную папку.
  2. Преобразование режима каждого файла в RGB color
  3. Добавление одного слоя в каждый файл
  4. Сохранение файлов в виде PSD в той же папке

Мне сказали, что это можно сделать с помощью сценариев Photoshop, но я не знаю, с чего начать, к сожалению, у меня нет большого опыта работы с JavaScript.

Я знаю только одно: я могу »t выполнить вышеуказанную задачу, используя Actions, потому что когда я записываю последний шаг (4), Photoshop записывает действие для сохранения файлов PSD в папке, которую я использую при записи макроса (вместо той, которая использовалась для загрузки исходного PNG).файлы).Другими словами, он фиксирует папку назначения в той, которая используется в макросе.

Это подводит меня к следующему вопросу: Есть ли способ автоматически генерировать код JavaScript Photoshop, который выполняет данное действие?

Если это так, я не возражаю, узнав, как изменить сценарий, чтобы устранить вышеуказанную проблему с папкой.

Ответы [ 5 ]

18 голосов
/ 29 июня 2012

Позвольте мне ответить на вопрос, который вы на самом деле задали жирным шрифтом: существует инструмент, который автоматически генерирует Javascript для действий и событий, происходящих в Photoshop.Он называется Script Listener .После использования прослушивателя сценариев для записи ваших действий просмотрите журнал и внесите необходимые изменения.

Чтобы начать использовать прослушиватель сценариев

  1. Закройте Photoshop
  2. Скопируйте файл ScriptListener.8li из C: \ Program Files \ Adobe \ Adobe Photoshop CS5 \ Scripting \ Utilities папка
  3. Вставить файл в папку C: \ Program Files \ Adobe \ Adobe Photoshop CS5 \ Plug-ins \ Automate .
  4. Запустите Photoshop, выполните действия, которые вы хотите выполнить в своем скрипте.
  5. Закройте Photoshop, удалите копию прослушивателя сценариев из папки Automate.
  6. Отредактируйте файл журнала, который размещается на рабочем столе прослушивателем сценариев.

Чтобы добавить новый скрипт в Photoshop, поместите созданный файл с расширением jsx в C: \ Program Files \ Adobe \ Adobe Photoshop CS5 \ Presets \ Scripts .

Lynda.com имеет отличный курс по использованию сценариев и список сценариевШенер.Однако это сайт, основанный на членстве, и он не бесплатный ($ 25- $ 35 в месяц).

13 голосов
/ 27 мая 2011

Я сделал скрипт, который выполняет необходимую работу:

#target photoshop
#strict on

runthis();
function runthis()
{
    var path = "/d/PhotoshopScript/Images/";

     var inputFolder = new Folder(path );
    var inputFiles = inputFolder.getFiles("*.png");

    for(index in inputFiles)
    {
        // open the file
        var fileToOpen = new File(inputFiles[index]);
        open(fileToOpen);

        // Change mode to rgb
        activeDocument.changeMode(ChangeMode.RGB);
        // add a new layer
        activeDocument.artLayers.add();

        //save
        var psdOptions = new PhotoshopSaveOptions();
        psdOptions.alphaChannels = true;
        psdOptions.annotations = false;
        psdOptions.embedColorProfile = false;
        psdOptions.layers = true;
        psdOptions.spotColors = false;

        var file = new File(path + GetFileName(String(inputFiles[index])));
        activeDocument.saveAs(file, psdOptions);

        activeDocument.close();

        // dispose
        fileToOpen = null;
        psdOptions = null;
        file  = null;
    }
    // dispose
    inputFolder = null;
    inputFiles = null;

}

function GetFileName(fullPath)
{
    var m = fullPath.match(/(.*)[\/\\]([^\/\\]+)\.\w+$/);
    return m[2];
}

Его можно улучшить многими способами, но я надеюсь, что он поможет.

6 голосов
/ 28 августа 2013

Я понимаю, что это старый вопрос, но то, о чем просит оригинальный пост, можно сделать целиком в действии Photoshop. Действия в Photoshop легко записать - вы просто нажимаете на запись и выполняете шаги вручную. - включая шаг Open, операции и сохранение.

Единственный оставленный прием - запустить действие в определенной папке, а не в том месте, где вы записали действие. Это легко, однако. Используйте опции «Override Open» и «Override Save». Вы вызываете это действие, используя File -> Automate -> Batch или из Adobe Bridge, используя Tools -> Photoshop -> Action

Смотрите пример:

enter image description here

Дополнительные советы смотрите здесь

3 голосов
/ 27 апреля 2011

найдите файл SaveAsDifferentFileType.jsx на вашем компьютере, я думаю, вы могли бы использовать его в качестве отправной точки.

Теперь я знаю, как автоматически генерировать этот код.Я думаю, что нет никакого способа узнать, как это работает:

Вот документация: http://www.adobe.com/devnet/photoshop/scripting.html А вот учебник, который скажет вам, с чего начать: http://morris -photographics.com/photoshop/tutorials/scripting1.html

Если вы используете MAC, вы можете попробовать действия Automator Photoshop: http://www.completedigitalphotography.com/?p=339

Они позволят вам делать то, что вы хотите, безлюбое ноу-хау программирования.

2 голосов
/ 03 января 2018

Чтобы обновить ответ Кевина, ScriptListener теперь скрыт в другом месте:

http://www.adobe.com/devnet/photoshop/scripting.html

внутри «Плагина прослушивателя сценариев».Каталог плагинов в Windows также изменился, как правило:

C: \ Program Files \ Common Files \ Adobe \ Plug-Ins \ CC

...