Из действий Photoshop в Photoshop?

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

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

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

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

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

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

Ответы

Ответ 1

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

#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];
}

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

Ответ 2

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

Чтобы начать использовать script Listener

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

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

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

Ответ 3

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

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

См. это для примера:

enter image description here

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

Ответ 4

найдите файл 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

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

Ответ 5

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

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

внутри "Scripting Listener Plug-in". Также изменился каталог плагинов в Windows:

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