2017-04-11 12 views
1
でJavaScriptを経由して

をベクトルマスクを、選択しコピーして貼り付けるには、私は、現在を介して活性層を選択することができる午前:どのようにPhotoshopの

app.activeDocument.activeLayer.copy(); 

app.activeDocument.paste(); 

貼り付けが関連するベクトルとピクセルマスクコピーされません。アクティブレイヤに関連付けられたベクトルマスクとピクセルマスクをコピーする方法はありますか?

ありがとうございました!

EDIT: 私は

app.activeDocument.activeLayer.duplicate(destinationDocument、ElementPlacement.PLACEATBEGINNING)を使用して終了。

私が必要としたとおりに動作します!

答えて

0

スクリプトリスナーは、レイヤーマスクに関してはあなたの友人です。彼らは少し痛みがあるので。 レイヤ名が与えられたときにここでレイヤーマスクを選択する機能があります

あなたはコピーして、新しい層

// 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(); 
    } 
} 
に適用することができるはずです(と仮定すると、それが存在します)
関連する問題