Skip to main content
Participant
July 10, 2017
解決済み

How Do I Change Save / Save As Default to JPG in Photoshop CC 2017?

Been searching but haven't found answers.

 

How Do I Change Save / Save As Default from PSD to JPG in Photoshop CC?

 

These are my steps:

 

- Editing a RAW file in ACR

- Then open it in Photoshop to do more edits

- Save/Save As...

 

Photoshop defaults to PSD. I've read other discussions that's because Photoshop will default to original file format. But this is a RAW file, not a PSD file to begin with.

 

My question is how do I change this default to JPG instead of PSD? It's annoying having to use the mouse to go down the drop down menu and scroll through to find JPG to save the file. I move through keyboard shortcus, so stopping to use the mouse just do select JPG really slows me down.

 

Any feedback is greatly appreciated! Thank you!

解決に役立った回答 skycross2004

If anyone is still looking for this solution (when batch processing a lot of JPG files through Actions), in your Actions add a step to do Layer->Flatten Image. If you add that action right before the save, the Save command will save the file as the original JPG.

返信数 15

Stephen Marsh
Community Expert
Community Expert
July 11, 2017

I agree with Dave regarding saving a “master” PSD version of any edits performed in Photoshop, over and above what has taken place in ACR.

Another option is to use the File > Scripts > Scripts Events Manager to automatically save a JPEG copy of EVERY image that is saved (which may or may not be considered practical or workable). Photoshop ships with this “Save Extra JPEG” script and has done so for quite a few versions (however you may wish to adjust the quality level, embedding colour profile etc from the default values in the script).

// (c) Copyright 2005.  Adobe Systems, Incorporated.  All rights reserved.

/*

@@@BUILDINFO@@@ Save Extra JPEG.jsx 1.1.0.0

*/

var begDesc = "$$$/JavaScripts/SaveExtraJPEG/Description=This script is designed to be used as a script that runs after a save event. The script will save an extra JPEG file next to the current active document. This script does not handle 'as a copy' when saving." // endDesc

var begName = "$$$/JavaScripts/SaveExtraJPEG/MenuName=Save Extra JPEG" // endName

// on localized builds we pull the $$$/Strings from a .dat file, see documentation for more details

$.localize = true;

try {

  if ( UsingAsACopy( arguments[0] ) ) {

  alert( localize( '$$$/JavaScripts/SaveExtraJPEGWarning=Save used As A Copy, extra file may not save correctly.' ) );

  }

  if ( IsBeginSaveEvent( arguments[0] ) ) {

  alert( localize( '$$$/JavaScripts/SaveExtraJPEGError=Save Extra JPEG should only be used with the Save Document event and not the Start Save Document event.^rSaving Extra aborted!' ) );

        throw( "DONE" );

  }

  var data = GetDataFromDocument( activeDocument );

  // if the current save was not a JPEG then save an extra JPEG

  // JPEG does not support Bitmap mode

    if ( 'jpg'  != data.extension.toLowerCase() &&

         'JPEG' != data.fileType &&

         DocumentMode.BITMAP != activeDocument.mode ) {

  SaveExtraJPEG( data );

    }

} // try end

catch( e ) {

  // always wrap your script with try/catch blocks so you don't stop production

  // remove comments below to see error for debugging

  // alert( e );

}

///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////

// Function: SaveExtraJPEG

// Use: save the current document as a copy using JPEG options

// Input: a document must be active

// Params: folder, filename, extension

// Output: file saved as a copy next to the current active document

///////////////////////////////////////////////////////////////////////////////

function SaveExtraJPEG( data ) {

  // 'Save for Web' would be better but I'm lazy

        var jpegOptions = new JPEGSaveOptions();

        jpegOptions.quality = 2; // really low

        jpegOptions.embedColorProfile = false; // really small

       

        // are we using extensions on this save

        var jpegExtension = '.jpg';

        if ( "" == data.extension ) {

  jpegExtension = "";

  }

        // third option is as a copy, set that to true

        // so the activeDocument doesn't switch underneath the user

        activeDocument.saveAs( File( data.folder +

                                     '/' +

                                     data.fileName +

                                     jpegExtension ), jpegOptions, true );

}

///////////////////////////////////////////////////////////////////////////////

// Function: UsingAsACopy

// Use: find out if the user used 'As A Copy'

// Input: action descriptor from the event that just occured

// Output: boolean that 'As A Copy' was checked

// Note: On script events the script gets passed in the actual action that

// occured we can look inside the action descriptor and pull information out

// in this case we are looking for the keyCopy

///////////////////////////////////////////////////////////////////////////////

function UsingAsACopy( actionDescriptor ) {

  var usingKeyCopy = false;

  if ( undefined != actionDescriptor ) {

  if ( "ActionDescriptor" == actionDescriptor.typename ) {

  var keyCopy = charIDToTypeID( "Cpy " );

  if ( actionDescriptor.hasKey( keyCopy ) ) {

  usingKeyCopy = actionDescriptor.getBoolean( keyCopy );

  }

  }

  }

  return usingKeyCopy;

}

///////////////////////////////////////////////////////////////////////////////

// Function: IsBeginSaveEvent

// Use: find out if the user used 'Start Save Document' event

// Input: action descriptor from the event that just occured

// Output: boolean that this is the 'Start Save Event' is occuring

// Note: On script events the script gets passed in the actual action that

// occured we can look inside the action descriptor and pull information out

// in this case we are looking for the "saveStage" to not be "saveBegin"

///////////////////////////////////////////////////////////////////////////////

function IsBeginSaveEvent( actionDescriptor ) {

  var usingStartSave = false;

  if ( undefined != actionDescriptor ) {

  if ( "ActionDescriptor" == actionDescriptor.typename ) {

  var keySaveStage = stringIDToTypeID( "saveStage" );

  if ( actionDescriptor.hasKey( keySaveStage ) ) {

  var typeSaveStage = actionDescriptor.getEnumerationType( keySaveStage );

                 var typeSaveStageType = stringIDToTypeID( "saveStageType" );

                 var enumSaveStage = actionDescriptor.getEnumerationValue( keySaveStage );

                 var enumSaveStageBegin = stringIDToTypeID( "saveBegin" );

                 usingStartSave = enumSaveStage == enumSaveStageBegin && typeSaveStage == typeSaveStageType;

  }

  }

  }

  return usingStartSave;

}

///////////////////////////////////////////////////////////////////////////////

// Function: GetDataFromDocument

// Usage: pull data about the document passed in

// Input: document to gather data

// Output: Object containing folder, fileName, fileType, extension

///////////////////////////////////////////////////////////////////////////////

function GetDataFromDocument( inDocument ) {

  var data = new Object();

  var fullPathStr = inDocument.fullName.toString();

  var lastDot = fullPathStr.lastIndexOf( "." );

  var fileNameNoPath = fullPathStr.substr( 0, lastDot );

  data.extension = fullPathStr.substr( lastDot + 1, fullPathStr.length );

  var lastSlash = fullPathStr.lastIndexOf( "/" );

  data.fileName = fileNameNoPath.substr( lastSlash + 1, fileNameNoPath.length );

  data.folder = fileNameNoPath.substr( 0, lastSlash );

  data.fileType = inDocument.fullName.type;

  return data;

}

Stephen Marsh
Community Expert
Community Expert
July 11, 2017

When I Save/Save As on the Mac, it remembers the last saved file format.

I agree with Warunicorn’s advice. Setup your Export Preferences as desired, such as:

Next, you can setup a custom Keyboard Shortcut, such as:

Then just use the keycut to save as a JPEG!

There are other options, which I’ll mention shortly…

Participant
October 7, 2019
Dude, thank you so much. You just saved me.
davescm
Community Expert
Community Expert
July 10, 2017

My advice would be this:

Always save your master file as a PSD without any resizing. This keeps the layers and is saved in a lossless format (i.e. no image information is discarded when saving).

If you need a jpeg copy , e.g. to share on a website etc. then use Export - Save for Web (Legacy) and make the appropriate judgement, using the previews and sliders, between file size, required pixel size and and image deterioration. Jpeg is lossy and you do not want to repeatedly open and resave for example if you need a copy for enlargement or further sharing.

Dave

Per Berntsen
Community Expert
Community Expert
July 10, 2017

There is no way to set a default for the file type.

But if you're on Windows, press Tab once to highlight the Save as type dropdown, then press J to choose jpg.

Not sure if this works on a Mac, though.

Participant
May 30, 2025

OK, it's now 8 years since your post but it solved my problem.

I wanted to create a Stream Deck +  key to automate [SaveAsCopy -> SaveAsType -> jpeg].

Via the excellent Stream Deck plug-in "SuperMacro" I now have it working !

(tip, need to extend the delay to > 200ms I found)

Many thanks

War Unicorn
Community Expert
Community Expert
July 10, 2017

Might want to give the Quick Export option a try. (File > Export > Quick Export as on the menu bar. Use Edit (Photoshop on Mac) > Preferences > Export to change the format to JPEG.)

Participant
March 20, 2018

Exporting is slow and cumbersome compared to command+s.

Trevor.Dennis
Community Expert
Community Expert
March 20, 2018

ScottKenyon  wrote

Exporting is slow and cumbersome compared to command+s.

I'm only commenting on your post Scott, and have not read the earlier posts about the scrip, but the secret to saving as JPG is to Flatten the image in the layers panel.  This is different to Merging layers, and nor does it remove extras like workpaths. 

What I do when batch processing a lot of RAW file with ACR (I think Lightroom is the work of the Devil )  is to use an action that finishes with Flatten and Save as.  I have to remake a new action each time because Save As is folder specific (Anyone know a way round that?  JJ?)  I then make sure I am happy, and Ctrl F4 to close, and back to Bridge for the next one.  If yoy try it, you'll notice that the file name takes on a .JPG extension after the Save As.