Используя Adobe PhotoShop CS4 scripting, JavaScript предоставляет классы File
и Folder
, но я не вижу, как я могу использовать эти классы из VBScript.Как ссылаться на объект Photoshop Folder в VBScript
В настоящее время я использую DoJavaScript
функцию:
Set appRef = CreateObject("Photoshop.Application")
jsCode = Array(_
"var inFolder = Folder.selectDialog('Select a folder to process');",_
"if(inFolder != null){",_
" var fileList = inFolder.getFiles(/\.(jpg|jpeg|tif|)$/i);",_
" var outFolder = new Folder(decodeURI(inFolder) + '/Edited');",_
" if (outFolder.exists == false) outFolder.create();",_
" for(var i = 0 ;i < fileList.length; i++){",_
" var doc = open(fileList[i]);",_
" doc.flatten();",_
" var docName = fileList[i].name.slice(0,-4);",_
" var saveFile = new File(decodeURI(outFolder) + '/' + docName + '.png');",_
" SavePNG(saveFile);",_
" activeDocument.close(SaveOptions.DONOTSAVECHANGES);",_
" }",_
"}",_
"function SavePNG(saveFile){",_
" pngSaveOptions = new PNGSaveOptions();",_
" pngSaveOptions.embedColorProfile = true;",_
" pngSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;",_
" pngSaveOptions.matte = MatteType.NONE;",_
" pngSaveOptions.quality = 1;",_
" pngSaveOptions.PNG8 = false;",_
" pngSaveOptions.transparency = true;",_
" activeDocument.saveAs(saveFile, pngSaveOptions, true, Extension.LOWERCASE);",_
"}")
appRef.DoJavaScript(Join(jsCode, vbNewLine))
Мой вопрос: Могу ли я использовать Folder
и File
классы непосредственно из моего VB сценария? Что-то вроде:
Set psFolder = appRef.Folder
inputFolder = psFolder.selectDialog("Select a folder to process")
Когда я пытаюсь это, appRef.Folder
возвращает эту ошибку:
Object doesn't support this property or method
Быстрый вопрос: ** Adobe Photoshop CS5 ** библиотека, которую вы используете? – s0d4pop
Я хочу убедиться, что я смотрю на правильную библиотеку, прежде чем комментировать неправильно. – s0d4pop
Спасибо, что спросил, я забыл сказать это, 'CS4'. – seeker