Нужен человек знающий JScript или VBScript

Печать / RSS
0
1. наиль 20.02.2015 / 14:01
Оранжевые штаны
Задача в следующем, для фотошопа имеется приблуда "ExtendScript Toolkit" позволяющая при помощи скриптов написанных JScript или VBScript обрабатывать изображения.
Здесь можно по подробней об этом прочесть http://geektimes.ru/post/112907/
Имеется макет в psd, и много картинок. Нужен скрипт который будет брать изображение, вставлять в макет и сохранять в png или jpg.
Буду рад если кто нибудь подскажет альтернативные методы позволяющие реализовать подобное.
0
2. Сергей 24.02.2015 / 13:28
Чатланин
1. Koiot, если php плюс js ? А для приложения можно xml плюс js .
Изменил: Сергей (24.02.2015 / 13:29)
0
3. наиль 24.02.2015 / 15:02
Оранжевые штаны
#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)
Для выполнения действия необходимо авторизоваться!
Стикеры / Теги / Правила / Топ тем / Топ тем / Поиск