[PS CS+] Photoshop + JS -> JPEG Speichern ohne Dialogbox

J-C

Lounge-Member
Viele kennen sicher das Problem:

man hat sich eine schicke Aktion gebaut (zB einen resizer/Thumbnailer) und dann bei der Stapelverarbeitung kommt laufend die "Eingabeaufforderung" zur Einstellung der Qualität bei JPEGs.

hier hab ich mal was vorbereitet - ein JavaScript zur "Steuerung" von Photoshop.

Dieses Script ist eine Art "Thumbnailer" - es verkleinert / vergrößert alle geöffneten Bilder auf 800x??? Pixel und speichert diese dann unter <name>_800.jpg ab ... mit JPEGqualitätsfaktor 12 ... ohne das lästige Menü


der unten folgende Code wird in eine .js-File gespeichert und dann über

Datei -> Skripten -> Durchsuchen... entsprechend eingebunden

PHP:
#target photoshop
main();

function main()
{
  try
  {
    if(app.documents.length==0) alert('Bitte öffnen Sie vorher alle Dateien, die bearbeitet werden sollen.');
    else
    {

    	if(confirm('Soll der aktuelle Pfad zum Speichern genutzt werden?') == false)
    	{
     	SavePath = prompt('Bitte geben Sie den Speicherort an!',unescape(app.activeDocument.path));
    	}

    	while(app.documents.length>0)
    	{
      		var activeDocName = app.activeDocument.name;
	      	var targetDocName = activeDocName.substring(0, activeDocName.lastIndexOf("."));
      		if(!SavePath) var SavePath = app.activeDocument.path;					// Pfad der aktuellen Datei - kann auch fest gesetzt werden
      		var copy = app.activeDocument.duplicate();
		app.activeDocument = app.documents[activeDocName];
      		app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
      		app.activeDocument = copy;

/////////////////////////////////
//    Das hier kann beliebig oft wiederholt werden - einfach copy-n-paste und entsprechend andere werte

		resize(800);
		saveAs(targetDocName + "_800",SavePath);
//
////////////////////////////////////
      		app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);     
    	}
   }
  }
  catch (e)
  {
    alert(e);
  }
}

function resize(size)
{
  if(app.activeDocument.width > app.activeDocument.height)
    app.activeDocument.resizeImage(size, (size * app.activeDocument.height/app.activeDocument.width),null, ResampleMethod.BICUBIC);
  else
    app.activeDocument.resizeImage((size * app.activeDocument.width/app.activeDocument.height), size, null, ResampleMethod.BICUBIC);
    alert('fertig');
}

function saveAs(fileName,filePath)
{
  var saveFile = new File(filePath+"/"+fileName + ".jpg");						// Dateiname halt =)
  jpgSaveOptions = new JPEGSaveOptions();
  jpgSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;			// Komprimierungs / Darstellungsart
  jpgSaveOptions.embedColorProfile = true;						// Farbprofil mit einbetten (sehr sinnvoll für browserdarstellung)
  jpgSaveOptions.quality = 12;								// hier die Quali (1-12) einstellen
  app.activeDocument.saveAs(saveFile, jpgSaveOptions, true, Extension.LOWERCASE);
}
 
Zuletzt bearbeitet:
Zurück
Oben