使用Javascript将所有现有剪辑遮罩转换为Photoshop中的智能对象

使用Javascript将所有现有剪辑遮罩转换为Photoshop中的智能对象,javascript,photoshop-script,Javascript,Photoshop Script,是否可以使用Javascript将所有现有剪辑遮罩转换为Photoshop中的智能对象 我的意思是将图像及其形状剪裁遮罩转换为单个智能对象。这是可能的:尽管此脚本只查找剪裁遮罩及其所属的层。没有小组,因为我不知道你的PSD是什么样子。但你明白了 真正的答案是和 //选择源图像 var srcDoc=app.activeDocument; var numOfLayers=srcDoc.layers.length; var-smart=false; 对于(var i=0;i

是否可以使用Javascript将所有现有剪辑遮罩转换为Photoshop中的智能对象


我的意思是将图像及其形状剪裁遮罩转换为单个智能对象。

这是可能的:尽管此脚本只查找剪裁遮罩及其所属的层。没有小组,因为我不知道你的PSD是什么样子。但你明白了

真正的答案是和

//选择源图像
var srcDoc=app.activeDocument;
var numOfLayers=srcDoc.layers.length;
var-smart=false;
对于(var i=0;i
屏幕截图上没有图层遮罩。你是说剪面具吗?是的,这是可能的:你需要迭代层,并添加到层选择的那些分组,然后只需将选定的转换为SOOh,是的。你是对的。我想说的是剪掉面具。我纠正了这个问题
// select the source image
var srcDoc = app.activeDocument;
var numOfLayers = srcDoc.layers.length;

var smart = false;
for (var i = 0; i< numOfLayers-1; i++)
{
  //select that layer as you go along
  srcDoc.activeLayer = srcDoc.artLayers[i];

  if (is_clipping_layer(srcDoc.layers[i]) == true)
  {
    // alert(thisLayer.name + "\n    " + srcDoc.layers[i+1].name);
    select_layer(srcDoc.layers[i+1].name, true)
    smart = true;
    break;
  }
}

if(smart == true)
{
  convert_to_smart_object();
}



function is_clipping_layer()
{
  var l = activeDocument.activeLayer;
  return (l.grouped == true && l.kind == LayerKind.NORMAL)
}

function convert_to_smart_object()
{
  var idnewPlacedLayer = stringIDToTypeID( 'newPlacedLayer' );
  executeAction(idnewPlacedLayer, undefined, DialogModes.NO);
}


function select_layer(nm, add)
{   
  try
  {

    var r = new ActionReference();
    r.putName(stringIDToTypeID("layer"), nm);
    var d = new ActionDescriptor();
    d.putReference(stringIDToTypeID("null"), r);
    if (add == true) d.putEnumerated(stringIDToTypeID("selectionModifier"), stringIDToTypeID("selectionModifierType"), stringIDToTypeID("addToSelection"));
    executeAction(stringIDToTypeID("select"), d, DialogModes.NO);
  }

  catch (eeek)
  {
    alert(eeek);
  }
}