在 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" 方法。
如何替换图层中的图像?对于文本层,我可以轻松做到 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" 方法。