在 Photoshop 脚本中替换图层图像

Replace Layer image in Photoshop scripting

如何替换图层中的图像?对于文本层,我可以轻松做到 doc.layerSets.getByName('title').textItem.contents = 'New Text'。所以我的问题是,是否有类似于 textItem 的东西可以处理图像。类似于 imageItem。这样我就可以替换图层中的图像了?

如果我没理解错的话,您想将所有图像层的内容从一个组复制到一个目标层中。

您可以使用直观 遍历群组艺术图层并将其内容就地copying/pasting 到目标图层的方法来完成此操作。这在 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();
}

这适用于简单的艺术目标层。现在,如果您的目标层更复杂(即它具有混合属性、遮罩等)并且您想要保持它,则必须求助于上面链接的 "paste in place" 方法。