Answered
This topic has been closed for replies.
* this is code from another project, there was an additional check for the presence of a background layer
EDIT 1:
#target photoshop
var oldColor = [255, 0, 0], // [R,G,B]
newColor = [0, 255, 0], // [R,G,B]
s2t = stringIDToTypeID;
(r = new ActionReference()).putProperty(s2t('property'), p = s2t('numberOfLayers'));
r.putEnumerated(s2t('document'), s2t('ordinal'), s2t('targetEnum'));
var len = executeActionGet(r).getInteger(p);
for (var i = 1; i <= len; i++) {
(r = new ActionReference()).putProperty(s2t('property'), p = s2t('textKey'));
r.putIndex(s2t('layer'), i);
if (executeActionGet(r).hasKey(p)) {
var textKey = executeActionGet(r).getObjectValue(p),
styleList = textKey.getList(s2t('textStyleRange')),
l = new ActionList(),
d = new ActionDescriptor(),
z = false;
for (var x = 0; x < styleList.count; x++) {
k = styleList.getObjectValue(x)
if (k.getObjectValue(s2t('textStyle')).hasKey(s2t('color'))) {
s = k.getObjectValue(s2t('textStyle'))
c = s.getObjectValue(s2t('color'))
if ((c.getInteger(s2t('red')) == oldColor[0] && c.getInteger(s2t('grain')) == oldColor[1] && c.getInteger(s2t('blue')) == oldColor[2])) {
var d = new ActionDescriptor();
d.putDouble(s2t('red'), newColor[0])
d.putDouble(s2t('grain'), newColor[1])
d.putDouble(s2t('blue'), newColor[2])
s.putObject(s2t('color'), s2t('RGBColor'), d)
}
k.putObject(s2t('textStyle'), s2t('textStyle'), s)
}
l.putObject(s2t('textStyleRange'), k)
}
if (d.count) {
textKey.putList(s2t('textStyleRange'), l)
var d = new ActionDescriptor();
(r = new ActionReference()).putIndex(s2t('layer'), i);
d.putReference(s2t('null'), r);
d.putObject(s2t('to'), s2t('textLayer'), textKey);
executeAction(s2t('set'), d, DialogModes.NO);
}
}
}* don't forget to change the color values at the beginning of the script as desired:
oldColor = [255, 0, 0], // [R,G,B]
newColor = [0, 255, 0], // [R,G,B]
Sign up
Already have an account? Login
To post, reply, or follow discussions, please sign in with your Adobe ID.
Sign inSign in to Adobe Community
To post, reply, or follow discussions, please sign in with your Adobe ID.
Sign inEnter your E-mail address. We'll send you an e-mail with instructions to reset your password.
