Skip to main content
Dan Rodney
Community Expert
Community Expert
August 19, 2021
Released

P: Bring back JPEG quality percentage to Export As dialog

  • August 19, 2021
  • 79 replies
  • 21115 views

I updated to Photoshop version 22.5.0 and just noticed that File > Export > Export As has a majorly dumbed down JPEG quality menu. Photoshop is for professionals. Having accurate control over quality is import for optimizing to a small file size. Giving a few choices (and not even telling us what quality they are) is not acceptable for a pro app. I know for now I can go into prefs and use the legacy version, but please bring back the quality percentage!

 

I also posted this on the Photoshop Feedback website which I think is a more appropriate place to discuss this, but wanted to see what other people think. It's probably best to comment there so Adobe knows. Photoshop Feedback: Bring back JPEG quality percentage to Export As dialog 

 

{Moderator edited title - PS-71391}

79 replies

Stephen Marsh
Community Expert
Community Expert
March 28, 2025
quote

Nice! You could also use generate assets, but we digress from the original point of how silly a 7-step quality slider is 🙂


By @jonathan8_817123306 

 

Forgive me for being pragmatic and trying to help.  :]

 

Adobe introduced this for whatever reason when they created Export As/Quick Export and it is what it is I'm afraid. They are aware that it isn't loved by end users. Export As is an unfinished project as far as I'm concerned as it stands, let alone throwing out the entire JPEG export code and starting from scratch again.

Inspiring
March 28, 2025

Nice! You could also use generate assets, but we digress from the original point of how silly a 7-step quality slider is 🙂

Stephen Marsh
Community Expert
Community Expert
March 28, 2025
quote

The legacy save for web is the only saving grace, but unfortunate that it doesnt work with multiple artboards.

 

@jonathan8_8 – Have you tried turning off the visibility of the other artboards before using Save for Web (Legacy)?

I mean sure… but the whole point is to export multiple at once. It's fine… we're all in figma now anyway haha

 

Agreed, however, knowing that this is the answer, this can be scripted for all artboards. I hit some issues (bugs?) so this isn't perfect, but it's certainly usable:

 

/*
All Artboards Interactive JPEG Save for Web.jsx
Stephen Marsh
v1.0 - 28th March 2025
https://community.adobe.com/t5/photoshop-ecosystem-ideas/p-bring-back-jpeg-quality-percentage-to-export-as-dialog/idc-p/14446391/page/5#U15236123
*/

#target photoshop

try {
    var outputFolder = Folder.selectDialog("Select a folder to save the output files");
    if (outputFolder) {
        alert("Remember to paste the artboard name from the clipboard to the file name to replace the default 'artboards' save name each time!");
        processLayerSets(outputFolder);
        app.refresh();
        alert("Restore or hide/restore the visibility of any artboards which are not previewing correctly after the script has finished.");
    } else {
        alert("No folder selected. Script aborted!");
    }
} catch (e) {
    alert("Error: " + e);
}

function processLayerSets(outputFolder) {
    var doc = app.activeDocument;

    if (doc.layerSets.length == 0) {
        alert("No layer sets found in the document!");
        return;
    }

    for (var i = 0; i < doc.layerSets.length; i++) {
        var currentLayerSet = doc.layerSets[i];

        // Hide all layer sets
        for (var j = 0; j < doc.layerSets.length; j++) {
            doc.layerSets[j].visible = false;
        }

        // Make current layer set visible
        currentLayerSet.visible = true;

        // Select the current layer set (make it active)
        doc.activeLayer = currentLayerSet;

        // Get the name of the current (now active) layer set
        var artboardName = currentLayerSet.name;

        // Copy the artboard name to the clipboard
        var d = new ActionDescriptor();
        d.putString(stringIDToTypeID("textData"), artboardName);
        executeAction(stringIDToTypeID("textToClipboard"), d, DialogModes.NO);

        // Export the current layer set as a JPG file
        exportSaveForWeb(true, new File(outputFolder + '/' + artboardName + '.jpg'), false, 75);

    }

}

function exportSaveForWeb(DIDr, in2, interfaceIconFrameDimmed, quality) {
    var c2t = function (s) {
        return app.charIDToTypeID(s);
    };
    var s2t = function (s) {
        return app.stringIDToTypeID(s);
    };
    var descriptor = new ActionDescriptor();
    var descriptor14 = new ActionDescriptor();
    descriptor14.putEnumerated(c2t("Op  "), c2t("SWOp"), c2t("OpSa"));
    descriptor14.putBoolean(c2t("DIDr"), DIDr);
    descriptor14.putPath(s2t("in"), in2);
    descriptor14.putEnumerated(s2t("format"), c2t("IRFm"), s2t("JPEG"));
    descriptor14.putBoolean(s2t("interfaceIconFrameDimmed"), interfaceIconFrameDimmed);
    descriptor14.putInteger(s2t("quality"), quality);
    descriptor.putObject(s2t("using"), s2t("SaveForWeb"), descriptor14);
    executeAction(s2t("export"), descriptor, DialogModes.ALL);
}

 

  1. Copy the code text to the clipboard
  2. Open a new blank file in a plain-text editor (not in a word processor)
  3. Paste the code in
  4. Save as a plain text format file – .txt
  5. Rename the saved file extension from .txt to .jsx
  6. Install or browse to the .jsx file to run (see below)

https://prepression.blogspot.com/2017/11/downloading-and-installing-adobe-scripts.html

Inspiring
March 27, 2025

I mean sure… but the whole point is to export multiple at once. It's fine… we're all in figma now anyway haha

Stephen Marsh
Community Expert
Community Expert
March 27, 2025
quote

The legacy save for web is the only saving grace, but unfortunate that it doesnt work with multiple artboards.

 

@jonathan8_817123306 – Have you tried turning off the visibility of the other artboards before using Save for Web (Legacy)?

Inspiring
March 27, 2025

"If file size is critical, the level of sharpening plays a huge part. Dial down a little bit on the sharpening, and you can cut size in half."

 

OR… Adobe could just bring back the simple 1-100 slider for more fine-tuned control. Typing a value in on export is WAY faster than adjusting sharpening per-image and hoping that it will get you to the file size you need.

 

The legacy save for web is the only saving grace, but unfortunate that it doesnt work with multiple artboards.

D Fosse
Community Expert
Community Expert
March 27, 2025

@IncredibleHat 

"4 is aweful and 5 is too large"

 

Jpeg file size is more than anything determined by image content. Flat areas compress much more effectively than busy high frequency detail. It can be a factor of 10x or more.

 

If file size is critical, the level of sharpening plays a huge part. Dial down a little bit on the sharpening, and you can cut size in half.

 

Here's 48 kB vs 426 kB - exact same dimensions and compression level:

IncredibleHat
Participant
March 26, 2025

"Export As..." needs the 1-100% slider (not the 1-7 hard steps where 4 is aweful and 5 is too large of file size).

 

Someone says "use the Save for Web (Legacy)"... if only it created a clean file when you choose "Metadata: None". The legacy export leaves metadata junk in the file... while "Export As..." makes a clean file with the 'none' choice. Go figure?

 

And get this.... if you use the auto generation with "Generate > Image Assets" and name a layer/artboard with like ".jpg72%" you get the precision jpg save from "Save for Web", and a clean metadata file from "Export As". ?!?!?

 

This reaks of bad UX. And this thread has existed for 4 years now. Bang up job our monthly subscriptions are going towards.

IncredibleHat
Participant
March 26, 2025

Its 2025 and this lacking 1-7 choice is driving us up the wall.

Participant
May 3, 2024

@Stephen Marsh Chip says Apple M2 Max, so Silicon.