Как заменить изображение в слое? Для текстового слоя я могу легко сделать doc.layerSets.getByName('title').textItem.contents = 'New Text'
. Итак, мой вопрос: есть ли что-то похожее на textItem
, которое работает с изображениями. что-то вроде imageItem
. так что я могу заменить изображение в слое?
Заменить изображение слоя в сценариях Photoshop
Ответы (1)
Если я вас правильно понял, вы хотите скопировать содержимое всех слоев изображений из группы в один целевой слой.
Этого можно добиться с помощью интуитивного способа перебора слоев группового рисунка и копирования/вставки их содержимого на целевой слой на месте. Это может показаться тривиальным в графическом интерфейсе, но программно это слишком сложно.
Другой способ, и, возможно, более программный, состоял бы в том, чтобы просто перебирать слои группового рисунка, дублировать каждый слой и объединять их с целевым слоем. Я приведу вам пример:
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();
}
Это прекрасно работает с простым художественным целевым слоем. Теперь, если ваш целевой слой более сложный (т. е. он имеет свойства смешивания, маски и т. д.), и вы хотите сохранить его, вам придется прибегнуть к методу «вставить на место», указанному выше.
gal[i]
, чтобы проверить, является ли это png или jpg?
- person Waeez; 21.04.2019