如何在Photoshop中通过JavaScript选择、复制和粘贴矢量遮罩

如何在Photoshop中通过JavaScript选择、复制和粘贴矢量遮罩,javascript,photoshop,Javascript,Photoshop,我目前可以通过以下方式选择活动层: app.activeDocument.activeLayer.copy(); 并粘贴它 app.activeDocument.paste(); 但是,不会复制相关的矢量和像素遮罩。有没有办法复制与活动层关联的矢量和像素遮罩 谢谢大家! 编辑: 我最终使用了 app.activeDocument.activeLayer.duplicate(destinationDocument,ElementPlacement.PlaceAtStart) 工作完全符合我的需

我目前可以通过以下方式选择活动层:

app.activeDocument.activeLayer.copy();
并粘贴它

app.activeDocument.paste();
但是,不会复制相关的矢量和像素遮罩。有没有办法复制与活动层关联的矢量和像素遮罩

谢谢大家!

编辑: 我最终使用了

app.activeDocument.activeLayer.duplicate(destinationDocument,ElementPlacement.PlaceAtStart)


工作完全符合我的需要

对于层掩码,脚本侦听器是您的朋友。因为他们有点痛。 这里有一个函数,用于在给定图层名称(假设存在)时选择图层掩码

您应该能够复制并将其应用于新图层

// 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();
  }
}