[英]How to select, copy and paste vector masks via JavaScript in Photoshop
我目前能够通过以下方式选择活动层:
app.activeDocument.activeLayer.copy();
并粘贴它
app.activeDocument.paste();
但是,不会复制关联的矢量和像素掩码。 有没有办法复制与活动层相关的矢量和像素掩码?
谢谢!
编辑:我最终使用
app.activeDocument.activeLayer.duplicate(destinationDocument,ElementPlacement.PLACEATBEGINNING);
完全按照我的需要工作!
在图层蒙版方面,脚本侦听器是您的朋友。 因为他们有点痛苦。 这是一个在给定图层名称时选择图层蒙版的函数(假设它存在)
您应该能够复制并将其应用于新图层
// FUNCTION SELECT MASK
function selectMask(LayerName)
{
try
{
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putEnumerated( charIDToTypeID('Chnl'), charIDToTypeID('Chnl'), charIDToTypeID('Msk ') );
ref.putName( charIDToTypeID('Lyr '), LayerName );
desc.putReference( charIDToTypeID('null'), ref );
desc.putBoolean( charIDToTypeID('MkVs'), true );
executeAction( charIDToTypeID('slct'), desc, DialogModes.NO );
// =======================================================
var id1083 = charIDToTypeID( "setd" );
var desc238 = new ActionDescriptor();
var id1084 = charIDToTypeID( "null" );
var ref161 = new ActionReference();
var id1085 = charIDToTypeID( "Chnl" );
var id1086 = charIDToTypeID( "fsel" );
ref161.putProperty( id1085, id1086 );
desc238.putReference( id1084, ref161 );
var id1087 = charIDToTypeID( "T " );
var ref162 = new ActionReference();
var id1088 = charIDToTypeID( "Chnl" );
var id1089 = charIDToTypeID( "Ordn" );
var id1090 = charIDToTypeID( "Trgt" );
ref162.putEnumerated( id1088, id1089, id1090 );
desc238.putReference( id1087, ref162 );
executeAction( id1083, desc238, DialogModes.NO );
}
catch(e)
{
//alert( "This layer has NO layer mask!" );
activeDocument.selection.deselect();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.