What's new
Photoshop Gurus Forum

Welcome to Photoshop Gurus forum. Register a free account today to become a member! It's completely free. Once signed in, you'll enjoy an ad-free experience and be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Reply to thread

This code should be close...

 

[code]

#target Photoshop

app.bringToFront();

function main(){

var folders =[];

var topLevel = Folder.selectDialog("Please select top level folder");

folders = FindAllFolders(topLevel, folders);

folders.unshift(topLevel);

for(var f in folders){

    var fileList = folders[f].getFiles(/\.(tif)$/i);

    for(var z in fileList){

        open(fileList[z]);

        try{

        activeDocument.mergeVisibleLayers();

        }catch(e){}

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

        if(loadTransparency()){

            var saveFile = File(folders[f] + "/" + Name + ".png");

                SavePNG(saveFile);

                app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);

            }else{

                var saveFile = File(folders[f] + "/" + Name + ".jpg");

                SaveForWeb(saveFile,80);

                app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);

                }

        }

    }

alert("Batch complete");

}

main();

function FindAllFolders( srcFolderStr, destArray) {

 var fileFolderArray = Folder( srcFolderStr ).getFiles();

 for ( var i = 0; i < fileFolderArray.length; i++ ) {

  var fileFoldObj = fileFolderArray[i];

  if ( fileFoldObj instanceof File ) {  

  } else {

         destArray.push( Folder(fileFoldObj) );

  FindAllFolders( fileFoldObj.toString(), destArray );

  }

 }

 return destArray;

}

function loadTransparency(){

var doc = activeDocument;

if(doc.activeLayer.isBackgroundLayer) return false;

   var desc = new ActionDescriptor();

        var ref = new ActionReference();

        ref.putProperty( charIDToTypeID( "Chnl" ), charIDToTypeID( "fsel" ) );

    desc.putReference( charIDToTypeID( "null" ), ref );

        var ref1 = new ActionReference();

        ref1.putEnumerated( charIDToTypeID( "Chnl" ), charIDToTypeID( "Chnl" ), charIDToTypeID( "Trsp" ) );

    desc.putReference( charIDToTypeID( "T   " ), ref1 );

   executeAction( charIDToTypeID( "setd" ), desc, DialogModes.NO );

var w = doc.width.as('px');

var h = doc.height.as('px');

var transChannel = doc.channels.add();

doc.selection.store( transChannel );

if( transChannel.histogram[255] != ( h * w ) ){

    transChannel.remove();

   return true;

}else{

    transChannel.remove();

   return false;

    }

};

function SavePNG(saveFile){

    pngSaveOptions = new PNGSaveOptions();

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

}

function SaveForWeb(saveFile,jpegQuality) {

var sfwOptions = new ExportOptionsSaveForWeb();

   sfwOptions.format = SaveDocumentType.JPEG;

   sfwOptions.includeProfile = false;

   sfwOptions.interlaced = 0;

   sfwOptions.optimized = true;

   sfwOptions.quality = jpegQuality;

activeDocument.exportDocument(saveFile, ExportType.SAVEFORWEB, sfwOptions);

}

[/code]


What is our favorite program/app? (Hint - it begins and ends with the letter P)
Back
Top