Как автоматизировать Photoshop? - PullRequest
0 голосов
/ 26 апреля 2009

Я пытаюсь автоматизировать процесс сканирования / обрезки фотографий в Photoshop. Мне нужно сканировать 3 фотографии одновременно, а затем использовать команду Photoshop «Кадрировать и выпрямить фотографии», которая создает 3 отдельных изображения. После этого я хочу сохранить каждое из вновь созданных изображений в формате PNG.

Я посмотрел на сценарии JSX, и они кажутся многообещающими. Возможно ли то, что я описал, автоматизировать в Photoshop, используя JavaScript, VBScript или что-то еще?

Ответы [ 3 ]

2 голосов
/ 16 апреля 2014

Я только что обнаружил, что этот скрипт только что сделал работу для меня! Он автоматически обрезает и выпрямляет фотографию и сохраняет каждый результат в каталог, который вы указали.

http://www.tranberry.com/photoshop/photoshop_scripting/PS4GeeksOrlando/IntroScripts/cropAndStraightenBatch.jsx

Сохраните его на локальном компьютере, затем запустите его в PS => Файл => Команда => Обзор

P.S. Я обнаружил, что в комментарии говорится, что сценарий можно запустить напрямую, дважды щелкнув в Mac Finder или Windows Explorer.

Резервная копия сценария здесь

1 голос
/ 08 мая 2009

Я получил ответ на форумах Photoshop в Adobe. Оказывается, что Photoshop CS4 полностью поддерживает сценарии с помощью JavaScript, VBScript и поставляется с действительно потрясающей средой разработки для разработчиков, в которой есть все, что вы ожидаете (отладчик, окно просмотра, цветовая кодировка и многое другое). Я был полностью впечатлен.

Ниже приводится выдержка для справки:

Вы можете запустить следующий скрипт, который создаст новую папку из существующей, и пакетно разделит все файлы с именами, существующими FileName # 001.png и поместит их в новую папку (отредактировано)

#target Photoshop
app.bringToFront;
var inFolder = Folder.selectDialog("Please select folder to process"); 
if(inFolder != null){
    var fileList = inFolder.getFiles(/\.(jpg|tif|psd|)$/i);
    var outfolder = new Folder(decodeURI(inFolder) + "/Edited");
    if (outfolder.exists == false) outfolder.create();
    for(var a = 0 ;a < fileList.length; a++){
    if(fileList[a] instanceof File){
        var doc= open(fileList[a]);
        doc.flatten();
        var docname = fileList[a].name.slice(0,-4);
        CropStraighten();
        doc.close(SaveOptions.DONOTSAVECHANGES); 
        var count = 1;
        while(app.documents.length){
            var saveFile = new File(decodeURI(outfolder) + "/" + docname +"#"+ zeroPad(count,3) + ".png");
            SavePNG(saveFile);
            activeDocument.close(SaveOptions.DONOTSAVECHANGES) ; 
            count++;
            }
        }
    }
};
function CropStraighten() {
    function cTID(s) { return app.charIDToTypeID(s); };
    function sTID(s) { return app.stringIDToTypeID(s); };
    executeAction( sTID('CropPhotosAuto0001'), undefined, DialogModes.NO );
};
function SavePNG(saveFile){
    pngSaveOptions = new PNGSaveOptions(); 
    pngSaveOptions.embedColorProfile = true; 
    pngSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE; 
    pngSaveOptions.matte = MatteType.NONE; 
    pngSaveOptions.quality = 1; 
    pngSaveOptions.PNG8 = false; //24 bit PNG
    pngSaveOptions.transparency = true; 
    activeDocument.saveAs(saveFile, pngSaveOptions, true, Extension.LOWERCASE); 
}

function zeroPad(n, s) { 
    n = n.toString(); 
    while (n.length < s) n = '0' + n; 
    return n; 
};

Посетите здесь для полного сообщения.

1 голос
/ 04 мая 2009

Вы пробовали использовать Photoshop Actions? Я не говорю о сканирующей части, но все остальное можно сделать с помощью действий довольно легко.

...