Нужен человек знающий JScript или VBScript
220
0
Задача в следующем, для фотошопа имеется приблуда "ExtendScript Toolkit" позволяющая при помощи скриптов написанных JScript или VBScript обрабатывать изображения.
Здесь можно по подробней об этом прочесть http://geektimes.ru/post/112907/
Имеется макет в psd, и много картинок. Нужен скрипт который будет брать изображение, вставлять в макет и сохранять в png или jpg.
Буду рад если кто нибудь подскажет альтернативные методы позволяющие реализовать подобное.
Здесь можно по подробней об этом прочесть http://geektimes.ru/post/112907/
Имеется макет в psd, и много картинок. Нужен скрипт который будет брать изображение, вставлять в макет и сохранять в png или jpg.
Буду рад если кто нибудь подскажет альтернативные методы позволяющие реализовать подобное.
0
1. Koiot, если php плюс js ? А для приложения можно xml плюс js .
Изменил: Сергей (24.02.2015 / 13:29)
0
#target photoshop if (app.documents.length > 0) { var myDocument = app.activeDocument; var theName= myDocument.name.match(/(.*)\.[^\.]+$/)[1]; var thePath = myDocument.path; var theLayer = myDocument.activeLayer; // jpg options; var jpgopts = new JPEGSaveOptions(); jpgopts.embedProfile = true; jpgopts.formatOptions = FormatOptions.STANDARDBASELINE; jpgopts.matte = MatteType.NONE; jpgopts.quality = 8; // check if layer is smart object; if (theLayer.kind != "LayerKind.SMARTOBJECT") {alert ("selected layer is not a smart object")} else { // select files; if ($.os.search(/windows/i) != -1) {var theFiles = File.openDialog ("please select files", "*.psd;*.tif;*.jpg", true)} else {var theFiles = File.openDialog ("please select files", getFiles, true)}; if (theFiles) { // work through the array; for (var m = 0; m < theFiles.length; m++) { // replace smart object; theLayer = replaceContents (theFiles[m], theLayer); var theNewName = theFiles[m].name.match(/(.*)\.[^\.]+$/)[1]; //save jpg; myDocument.saveAs((new File(thePath+"/"+theName+"_"+theNewName+".jpg")),jpgopts,true); } } } }; ////// get psds, tifs and jpgs from files ////// function getFiles (theFile) { if (theFile.name.match(/\.(psd|tif)$/i) != null || theFile.constructor.name == "Folder") { return true }; }; ////// replace contents ////// function replaceContents (newFile, theSO) { app.activeDocument.activeLayer = theSO; // ======================================================= var idplacedLayerReplaceContents = stringIDToTypeID( "placedLayerReplaceContents" ); var desc3 = new ActionDescriptor(); var idnull = charIDToTypeID( "null" ); desc3.putPath( idnull, new File( newFile ) ); var idPgNm = charIDToTypeID( "PgNm" ); desc3.putInteger( idPgNm, 1 ); executeAction( idplacedLayerReplaceContents, desc3, DialogModes.NO ); return app.activeDocument.activeLayer };Есть вот такой код, который делает то что мне нужно, проблема в том что на слой наложена карта смещения, код работает но на каждой вставляемой картинке всплывает диалог предлагающий обновить карту смещения. В мануале есть вот такой "метод".
applyDisplace (horizontalScale, verticalScale, displacement, undefinedareas, displacementMapFiles)Нужно добавить это в код, если я правильно понял...
Applies the Displace filter using the specified horizontal and vertical scale, mapping type, treatment of undistorted areas, and path to the distortion image map
Вот сам мануал http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/photoshop/pdfs/photoshop-cc-javascript-ref.pdf на 56 странице про "applyDisplace"
Ну кто возьмется?
Изменил: наиль (24.02.2015 / 15:05)
Для выполнения действия необходимо авторизоваться!