2014-12-16 3 views
1

Мне нужно создать сценарий Photoshop (я использую Java Script), который принимает несколько изображений и применяет одну и ту же маску к каждому из них.Применить маску к изображению в сценарии Photoshop

(Here is what I mean by applying a mask)

После того, как я загрузил изображения, используя этот код

var sourceImageDoc = app.open(new File("./image.png")) 
var maskImageDoc = app.open(new File("./mask.png")) 

как я могу установить maskImageDoc быть маска для sourceImageDoc?

+1

ли вы отчаянно нужно оплатить и использовать Photoshop? Если нет, вы можете использовать ImageMagick, который является бесплатным и доступен для Linux, Windows и OSX следующим образом: 'convert image.jpg mask.png -compose copy-opacity -composite out.png' Он установлен в любом случае на большинстве дистрибутивов Linux и если вам посчастливилось быть в Mac OS X, вы можете использовать 'homebrew' для установки ImageMagick достаточно легко. –

+0

@MarkSetchell что делать, если он пытается создать плагин? – Dinal24

+0

Я хочу выполнить эту задачу с помощью скрипта Photoshop, потому что я уже реализовал значительную часть скрипта. Маскировка - всего лишь один шаг от множества изменений, которые я применяю к набору изображений. – NAlexN

ответ

0

Вот некоторые фрагменты из одного из моих сценариев, который работает CS3 +. Как вы можете видеть, он использует уродливый код прослушивателя скрипта - если вы применяете его к слою, а не к группе, вам может понадобиться отрегулировать эту часть? Я не уверен, что когда-либо использовал эту функцию на слое, а не на слое.

//mask group to paper area 
app.activeDocument.activeLayer = lyr; 
selectRasterLayerContents(); 
app.activeDocument.activeLayer = grp; 
AddMaskToGroup(); 


//Selects the contents of the active layer. 
function selectRasterLayerContents() { 
var id47 = charIDToTypeID("setd"); 
    var desc11 = new ActionDescriptor(); 
    var id48 = charIDToTypeID("null"); 
     var ref11 = new ActionReference(); 
     var id49 = charIDToTypeID("Chnl"); 
     var id50 = charIDToTypeID("fsel"); 
     ref11.putProperty(id49, id50); 
    desc11.putReference(id48, ref11); 
    var id51 = charIDToTypeID("T "); 
     var ref12 = new ActionReference(); 
     var id52 = charIDToTypeID("Chnl"); 
     var id53 = charIDToTypeID("Chnl"); 
     var id54 = charIDToTypeID("Trsp"); 
     ref12.putEnumerated(id52, id53, id54); 
    desc11.putReference(id51, ref12); 
executeAction(id47, desc11, DialogModes.NO); 
} 


//adds a mask revealing the selection to the active group 
function AddMaskToGroup() { 
    var id42 = charIDToTypeID("Mk "); 
    var desc8 = new ActionDescriptor(); 
    var id43 = charIDToTypeID("Nw "); 
    var id44 = charIDToTypeID("Chnl"); 
    desc8.putClass(id43, id44); 
    var id45 = charIDToTypeID("At "); 
     var ref10 = new ActionReference(); 
     var id46 = charIDToTypeID("Chnl"); 
     var id47 = charIDToTypeID("Chnl"); 
     var id48 = charIDToTypeID("Msk "); 
     ref10.putEnumerated(id46, id47, id48); 
    desc8.putReference(id45, ref10); 
    var id49 = charIDToTypeID("Usng"); 
    var id50 = charIDToTypeID("UsrM"); 
    var id51 = charIDToTypeID("RvlS"); 
    desc8.putEnumerated(id49, id50, id51); 
executeAction(id42, desc8, DialogModes.NO); 
} 
0

Применение маски слоя - это боль, потому что прослушиватель скрипта не услышит его напрямую.

Вы хотите, это то

function applyLayerMask() 
{ 

var id1949 = charIDToTypeID("Dlt "); 
var desc398 = new ActionDescriptor(); 
var id1950 = charIDToTypeID("null"); 
var ref291 = new ActionReference(); 
var id1951 = charIDToTypeID("Chnl"); 
var id1952 = charIDToTypeID("Chnl"); 
var id1953 = charIDToTypeID("Msk "); 
ref291.putEnumerated(id1951, id1952, id1953); 
desc398.putReference(id1950, ref291); 
var id1954 = charIDToTypeID("Aply"); 
desc398.putBoolean(id1954, true); 
executeAction(id1949, desc398, DialogModes.NO); 
} 
+0

Моя цель - применить маску с использованием скрипта, мне все равно, как именно сделайте это, используя выбор или другую технику, доступную в Photoshop. Какова идея вашего ответа? Ваш код только меняет активный документ и ничего не делает – NAlexN

+0

Я изменил свой ответ, я думал, что вам не удается переключить фокус с одного изображения на другое. Возможно, вы захотите [посмотреть здесь] (http://stackoverflow.com/questions/13842581/photoshop-js-script-to-create-and-apply-a-layer-mask) –

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

  • Нет связанных вопросов^_^