RGB 채널에서 마스크를 추출하는 것을 작성하려고합니다.포토샵 자바 스크립트 채널 내용
순수한 R G 및 B 레이어로 출력되는 마스크가있는 .exr 파일이 많이 있습니다.
이걸했던 :
괜찮다 작동var doc = app.activeDocument;
function showMasks(docGroups) {
//step through the groups
for (var i=0; i<docGroups.length; i++) {
try{
//step through the layers in each group
for(layerIndex=0; layerIndex < docGroups[i].artLayers.length; layerIndex++) {
var RGB = [doc.channels.getByName('Red'),doc.channels.getByName('Green'),doc.channels.getByName('Blue')];
for(var a in RGB)
{
//create slection from channel
doc.selection.load(RGB[a], SelectionType.REPLACE);
//add new layer
doc.artLayers.add();
// REVEAL ALL from selection
var idMk = charIDToTypeID("Mk ");
var desc62 = new ActionDescriptor();
var idNw = charIDToTypeID("Nw ");
var idChnl = charIDToTypeID("Chnl");
desc62.putClass(idNw, idChnl);
var idAt = charIDToTypeID("At ");
var ref20 = new ActionReference();
var idChnl = charIDToTypeID("Chnl");
var idChnl = charIDToTypeID("Chnl");
var idMsk = charIDToTypeID("Msk ");
ref20.putEnumerated(idChnl, idChnl, idMsk);
desc62.putReference(idAt, ref20);
var idUsng = charIDToTypeID("Usng");
var idUsrM = charIDToTypeID("UsrM");
var idRvlS = charIDToTypeID("RvlS");
desc62.putEnumerated(idUsng, idUsrM, idRvlS);
executeAction(idMk, desc62, DialogModes.NO);
}
//hide layer, move on to the next
docGroups[i].artLayers[layerIndex].visible = false;
}
}
catch(e){continue;}
}
}
showMasks(doc.layerSets);
, 그룹 및 레이어에 출력 따라서 그들 층 마스크 층을 통해 새로운 단계. 그러나 레이어가 R G와 B를 포함하는 경우에만 작동합니다. 단 하나의 색상이있는 레이어 인 경우 중지됩니다. 레이어에 3 가지 채널 색상이 모두 포함되어 있지 않은 경우 계속 실행되도록 설정하려면 어떻게해야합니까? 또는 한 번에 하나의 채널을 다시 작성 하시겠습니까?
어떤 아이디어가 많은 감사, 감사/S
이 문제가 직접 해결되었습니다. – SEJM