在Photoshop脚本中替换图层图片

时间:2019-04-12 22:21:21

标签: javascript photoshop photoshop-script

如何替换图层中的图像?对于文本层,我可以轻松进行{​​{1}}。所以我的问题是,是否有类似于doc.layerSets.getByName('title').textItem.contents = 'New Text'的东西可以处理图像。类似于textItem。这样我可以将图像替换为一层吗?

1 个答案:

答案 0 :(得分:2)

如果我对您的理解正确,则希望将所有图像层的内容从一个组复制到单个目标层。

您可以使用 intuitive 的方法来完成此任务,该方法可以遍历组图艺术图层并将其内容复制/粘贴到目标图层。在GUI中,这可能看起来微不足道,但是通过编程,它是too complicated的方式。

另一种方法,也许是一种更具编程性的方法,将是仅遍历组图艺术层,复制每个层并将其与目标层合并。我给你举个例子:

var doc = app.activeDocument;
var target = doc.layers.getByName('target');
var group = doc.layerSets.getByName('images');
var gal = group.artLayers;

// Iterate through art layers from group "images"
for (var i = 0; i < gal.length; i++) {
  // Duplicate current layer and put it before the target layer
  var temp = gal[i].duplicate(target, ElementPlacement.PLACEBEFORE);

  // Merge the current layer with the target
  // (the target variable has to be updated because it's now a new merged layer)
  target = temp.merge();
}

这对于简单的艺术目标层来说效果很好。现在,如果您的目标图层更复杂(即它具有混合属性,蒙版等),并且您要保持该图层不变,则必须使用上面链接的“原位粘贴”方法。