• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
1

New button in Adjustment window for Photoshop

Community Beginner ,
Jul 22, 2022 Jul 22, 2022

Copy link to clipboard

Copied

Some times when I work in Adjustment Curve/levels/ or other tools, I dont' go to adjustment layer, because may be not sure for result, but when is good, I want to save this as adjustment layer from any adjustment windows. Not sure I'm clear, but I think is not so difficult put one new button in any adjustment tool windows, like "save as adjustment layer".

Idea No status

Views

330

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
7 Comments
Community Expert ,
Jul 22, 2022 Jul 22, 2022

Copy link to clipboard

Copied

From within the Curves or other adjustment dialogs you can save a preset, which can then be reloaded in either adjustment or adjustment layer dialogs.

 

cur.png

 

 

The advantage in using adjustment layers over Image>Adjustments is you can change the settings without permanently altering the image.

Votes

Translate

Translate

Report

Report
Guide ,
Jul 22, 2022 Jul 22, 2022

Copy link to clipboard

Copied

If I understood you correctly, then this script can solve the problem: after activation, it remembers the result of each application of curves or levels. If you hold down the Shift key when creating the corresponding adjustment layer, it automatically substitutes the last saved settings. Without pressing Shift, the adjustment layer will be created with the default settings.

/*
<javascriptresource>
<name>Adjustments tracking</name>
</javascriptresource>
*/
#target photoshop
var UUID = '6fdba335-bf6d-4167-8872-8920758ad32b',
    s2t = stringIDToTypeID,
    t2s = typeIDToStringID,
    cfg = new Config();
try {
    var evt = arguments[1];
    if (evt == s2t('curves') || evt == s2t('levels')) {
        cfg.putScriptSettings(arguments[0], evt, cfg.getScriptSettings());
    } else {
        if (ScriptUI.environment.keyboardState.shiftKey) {
            (r = new ActionReference()).putProperty(s2t('property'), p = s2t('adjustment'));
            r.putEnumerated(s2t('layer'), s2t('ordinal'), s2t('targetEnum'));
            var kind = executeActionGet(r).getList(p).getObjectType(0);
            var adjustment = cfg.getScriptSettings(kind)
            if (adjustment.count && adjustment.hasKey(s2t('adjustment'))) {
                (r = new ActionReference()).putEnumerated(s2t("adjustmentLayer"), s2t("ordinal"), s2t("targetEnum"));
                (d = new ActionDescriptor()).putReference(s2t("null"), r);
                (d1 = new ActionDescriptor()).putEnumerated(s2t("presetKind"), s2t("presetKindType"), s2t('presetKindCustom'));
                d1.putList(s2t("adjustment"), adjustment.getList(s2t('adjustment')))
                d.putObject(s2t("to"), kind, d1);
                executeAction(s2t("set"), d, DialogModes.NO);
            }
        }
    }
} catch (e) {}
if (!evt) {
    dialogWindow();
}
function dialogWindow() {
    var w = new Window("dialog {text: 'Adjustments tracking',alignChildren:['fill','top']}"),
        bnNotifier = w.add("button {text: 'Enable adjustments tracking'}"),
        g = w.add("group {alignChildren:['center', 'center']}"),
        bnOk = g.add("button {text:'Ok'}", undefined, undefined, { name: "ok" }),
        evt = new Events();
    bnNotifier.onClick = function () {
        if (evt.checkEvents()) evt.removeEvents() else evt.addEvents()
        setEnabledButtonValue()
    }
    w.onShow = function () {
        setEnabledButtonValue()
    }
    function setEnabledButtonValue() {
        var enabled = evt.checkEvents()
        bnNotifier.text = enabled ? 'Disable adjustments tracking' : 'Enable adjustments tracking'
        bnNotifier.graphics.foregroundColor = enabled ? bnNotifier.graphics.newPen(bnNotifier.graphics.PenType.SOLID_COLOR, [1, 0, 0, 1], 1) : bnNotifier.graphics.newPen(bnNotifier.graphics.PenType.SOLID_COLOR, [0, 0.8, 0, 1], 1)
    }
    w.show()
}
function Config() {
    this.getScriptSettings = function (kind) {
        var d = new ActionDescriptor();
        try { d = getCustomOptions(UUID) } catch (e) { }
        if (d.count) {
            if (kind) if (d.hasKey(kind)) return d.getObjectValue(kind) else return new ActionDescriptor();
        }
        return d
    }
    this.putScriptSettings = function (d, kind, parent) {
        parent.putObject(kind, s2t('object'), d)
        putCustomOptions(UUID, parent, false);
    }
}
function Events() {
    var f = File($.fileName);
    this.addEvents = function () {
        app.notifiersEnabled = true
        app.notifiers.add('Crvs', f)
        app.notifiers.add('levels', f)
        app.notifiers.add('Mk  ', f, 'AdjL')
    }
    this.removeEvents = function () {
        for (var i = 0; i < app.notifiers.length; i++) {
            var ntf = app.notifiers[i]
            if (ntf.eventFile.name == f.name) { ntf.remove(); i--; }
        }
    }
    this.checkEvents = function () {
        for (var i = 0; i < app.notifiers.length; i++) {
            if (app.notifiers[i].eventFile.name == f.name) return true
        }
        return false
    }
}

Votes

Translate

Translate

Report

Report
Community Beginner ,
Jul 23, 2022 Jul 23, 2022

Copy link to clipboard

Copied

Hi Jeff, I don't want save as preset, I want save as an Adjustment Layer from Curves or other adjustment dialogs.

Votes

Translate

Translate

Report

Report
Community Expert ,
Jul 23, 2022 Jul 23, 2022

Copy link to clipboard

Copied

quote

Hi Jeff, I don't want save as preset, I want save as an Adjustment Layer from Curves or other adjustment dialogs.

By @Alex Millman

 

This topic is an idea/feature request. End users can only do so much with the tools on offer. The preset is the "standard" approach, outside of scripting.

 

Of course, the simple answer would be to just work with an adjustment layer from the beginning, then delete it if you don't wish to use it. Your choice of modal adjustment first complicates things, necessitating either preset or script workarounds to try to offer something similar to your feature request.

 

Votes

Translate

Translate

Report

Report
Community Beginner ,
Jul 23, 2022 Jul 23, 2022

Copy link to clipboard

Copied

Thanks Stephen. I work a lot with adjustment, I like shortcuts for it, like Comand+M, +L, +U, Adjustment Layer palette is smaller, yes I can make it bigger, but this not solve problem, I discover PS in 1992 it was PS 2.5., Yes I'm archaic. But those inovation in PS not help me in a lot of cases. sometimes when I work like a machine I need this button in Adjustment dialog is usefull, when I want this. I don'tthink is a big deal make this button. And I think o lot of production/prepress peoples thanks for this.

Votes

Translate

Translate

Report

Report
Community Expert ,
Jul 23, 2022 Jul 23, 2022

Copy link to clipboard

Copied

Alex, I'd offer a script to create a new curves adjustment layer, then you can assign the old modal keyboard shortcut of CMD + M to the script (same for the other legacy adjustments). The best of both worlds! I get it, I too first used Photoshop before it had layers and have chosen to adapt rather than fight against various keyboard shortcut changes over the years.

Votes

Translate

Translate

Report

Report
Guide ,
Jul 23, 2022 Jul 23, 2022

Copy link to clipboard

Copied

LATEST

I understand that this is a little different from what the @Alex Millman  wants, but it is worth mentioning the wonderful panel from @Davide_Barranca, Floating Adjustments, which allows you to edit adjustment layers in a modal window

47bfd222-7400-4c4f-8162-be0da79e5612.jpg

 

Votes

Translate

Translate

Report

Report