Skip to main content
Participant
July 1, 2014
Question

Save As PNG script

  • July 1, 2014
  • 1 reply
  • 16181 views

Hello,

I'd like some help with this script if possible

I wanted to save my open file to PNG format in the same location with the same name. I managed to do that with the scripts below.

This is a script I found on the forum:

#target photoshop

main();

function main(){

if(!documents.length) return;

try{

    var Path = decodeURI(activeDocument.path.parent);

    }catch(e){return;}

if(!Folder(Path).exists){

    alert(Path + " Does not exist!");

    return;

    }

var Name = decodeURI(app.activeDocument.name).replace(/\.[^\.]+$/, '');

var saveFile = File(Path + "/" + Name + "_bump.png");

sfwPNG24(saveFile);

//Uncomment the line below if you want to close the document.

//app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);

}

function sfwPNG24(saveFile){

var pngOpts = new ExportOptionsSaveForWeb;

pngOpts.format = SaveDocumentType.PNG

pngOpts.PNG8 = false;

pngOpts.transparency = true;

pngOpts.interlaced = false;

pngOpts.quality = 100;

activeDocument.exportDocument(new File(saveFile),ExportType.SAVEFORWEB,pngOpts);

}

And this is how I modified it (so that it saves the file in the same folder and doesn't add any suffix to the name; also changed to save as PNG instead of using save for web):

#target photoshop

main();

function main(){

if(!documents.length) return;

try{

    var Path = decodeURI(activeDocument.path);

    }catch(e){return;}

if(!Folder(Path).exists){

    alert(Path + " Does not exist!");

    return;

    }

var Name = decodeURI(app.activeDocument.name).replace(/\.[^\.]+$/, '');

var saveFile = File(Path + "/" + Name + ".png");

sfwPNG24(saveFile);

//Uncomment the line below if you want to close the document.

//app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);

}

function sfwPNG24(saveFile){

var pngOpts = new PNGSaveOptions;

pngOpts.compression = 9;

pngOpts.interlaced = false;

activeDocument.saveAs(saveFile, pngOpts, true, Extension.LOWERCASE);

}

My problem:

I don't know what's happening when I try to save a file just created (never saved yet). I thought I would get the Alert message but it doesn't seem to be the case (maybe the alert message in the code is related to a different condition?)

I would like to have a default folder/path in the code so that, if the file hasn't been saved yet, it would be saved in the specified location.

If anyone could do it I would really appreciate it!

Thanks

This topic has been closed for replies.

1 reply

JJMack
Community Expert
Community Expert
July 2, 2014

did not get that far.... Your catch ended the script without a notice to you. Try the changed line below in the catch.

#target photoshop

main();

function main(){

if(!documents.length) return;

try{

    var Path = decodeURI(activeDocument.path);

    }catch(e){alert(e); return;}   //Let the user know about the problem

if(!Folder(Path).exists){

    alert(Path + " Does not exist!");

    return;

    }

var Name = decodeURI(app.activeDocument.name).replace(/\.[^\.]+$/, '');

var saveFile = File(Path + "/" + Name + ".png");

sfwPNG24(saveFile);

//Uncomment the line below if you want to close the document.

//app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);

}

function sfwPNG24(saveFile){

var pngOpts = new PNGSaveOptions;

pngOpts.compression = 9;

pngOpts.interlaced = false;

activeDocument.saveAs(saveFile, pngOpts, true, Extension.LOWERCASE);

}

JJMack
AG_Ps_100
Inspiring
September 5, 2018

4 years later and this helped me^

gotta love the internet, thanks JJ-Mack!