2009-04-26 3 views
0

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

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

+0

Вы попробовали Google? Подсказка CodeProject ... –

+0

Google никогда не приходил ко мне.. Ссылка пожалуйста. – AngryHacker

ответ

1

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

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

вы можете запустить следующий скрипт, который будет создавать новый каталог уже существующую и партии разделить все файлы именование их existingFileName # 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; 
}; 

Посещение here для полного поста.

+0

Я бы рекомендовал придерживаться JavaScript/ExtendScript для написания сценариев Photoshop. Использование других языков (VBScript, AppleScript и т. Д.) Устарело, и для них не будет предоставлена ​​дополнительная поддержка DOM. –

1

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

2

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

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

Сохранить это местные затем запустить его в PS => Файл => Command => Просмотр

PS Я нашел в комментарии он сказал, что сценарий может быть выполнен непосредственно двойным щелчком мыши из Mac Finder или Windows Explorer.

Backup gist for the script here

+0

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. –

+0

Не мой код, поэтому я положу его в суть. – Robert

Смежные вопросы