@mangurian
Try this:
#target photoshop
app.activeDocument.suspendHistory("Fill Background Green All Layers", "main()");
function main() {
var doc = app.activeDocument;
var originalLayer = doc.activeLayer;
// Ensure that a layer is selected - by r-bin
try {
activeDocument.activeLayer.link(activeDocument.activeLayer);
} catch (e) { }
for (var i = 0; i < doc.layers.length; i++) {
var layer = doc.layers[i];
if (layer.kind == LayerKind.NORMAL && layer.visible) {
doc.activeLayer = layer;
// Select all
//doc.selection.selectAll();
// AM code to load transparency as a selection
var idsetd = charIDToTypeID("setd");
var desc = new ActionDescriptor();
var idnull = charIDToTypeID("null");
var ref = new ActionReference();
ref.putProperty(charIDToTypeID("Chnl"), charIDToTypeID("fsel"));
desc.putReference(idnull, ref);
var idT = charIDToTypeID("T ");
var ref2 = new ActionReference();
ref2.putEnumerated(charIDToTypeID("Chnl"), charIDToTypeID("Chnl"), charIDToTypeID("Trsp"));
desc.putReference(idT, ref2);
executeAction(idsetd, desc, DialogModes.NO);
doc.selection.invert();
// Set green color
var fillColor = new SolidColor();
fillColor.rgb.red = 0;
fillColor.rgb.green = 255;
fillColor.rgb.blue = 0;
// Fill the selection
doc.selection.fill(fillColor, ColorBlendMode.NORMAL, 100, false);
doc.selection.deselect();
}
}
doc.activeLayer = originalLayer;
}
I'm not sure if this is a what you want, or the opposite?!
... View more