Kategorien
PhotoShop

Photoshop Script: Bilder in Streifen schneiden und zusammensetzen

Aus den angegebenen Bilder schneidet dieses Script einzelne Streifen, abhängig von der Bildbreite und Anzahl der Bilder, und setzt diese Streifen als ein Bild zusammen.

Ein Bild sagt mehr als tausend Worte:
– Bild –

var picSourcePath = "C:\\testbilder\\";

// Achtung: Porträt-Format!
var picWidth = 2448;
var picHeight = 3264;

// Photoshop-Einstellungen sichern
var startRulerUnits = app.preferences.rulerUnits;
var startTypeUnits = app.preferences.typeUnits;
var startDisplayDialogs = app.displayDialogs;

// Dialoge verbergen und Pixel als Einheit einstellen
app.preferences.rulerUnits = Units.PIXELS;
app.preferences.typeUnits = TypeUnits.PIXELS;
app.displayDialogs = DialogModes.NO;

// Liste aller Dateien und Ordner erstellen
var picFolder = Folder(picSourcePath);
var fileList = picFolder.getFiles();

// Anzahl der Dateien und Breite des Streifens berechnen
var picCnt = fileList.length;
var stripWidth = picHeight / picCnt;

// Pruefung ob auch Dateien und Ordner vorhanden sind
if (picSourcePath != null) {
    
	// Quellbilder in Schleife oeffnen
	for (var i=0; i<picCnt; i++) {

		// Nur Dateien (und keine Ordner) oeffnen
		if (fileList[i] instanceof File) {
			open(fileList[i]);

			// Selektionsrahmen fürs Einfügen des vorherigen Streiens
			selRegion = Array(Array(0, 0),
								Array(picWidth, 0),
								Array(picWidth, stripWidth*i),
								Array(0, stripWidth*i),
								Array(0, 0));

			// Selektion setzen			
			activeDocument.selection.select(selRegion);
								
			// Beim ersten Bild kann noch nichts von vorherigen Bilder eingefügt werden
			if (i != 0) {
				activeDocument.paste();
			}
			
			// Selektion entfernen
			activeDocument.selection.deselect();	

			// Auf Hintergrundebene zusammenfügen
			activeDocument.flatten();

			// Selektionsrahmen für Kopieren
			selRegion = Array(Array(0, 0),
								Array(picWidth, 0),
								Array(picWidth, stripWidth*(i+1)),
								Array(0, stripWidth*(i+1)),
								Array(0, 0));

			// Selektion setzen			
			activeDocument.selection.select(selRegion);

			// Selektion kopieren
			activeDocument.selection.copy();	// true geht nicht !?!?!
			
			// Bis auf das letzte Bild alle schließen (ohne Nachfrage)
			if (i < picCnt-1) {
				activeDocument.close(SaveOptions.DONOTSAVECHANGES);
			}
		}
	}
	
	// Selektion entfernen und Bild drehen
	activeDocument.selection.deselect();
	activeDocument.rotateCanvas(-90);
	
}

// Photoshop-Einstellungen zuruecksetzen
app.preferences.rulerUnits = startRulerUnits;
app.preferences.typeUnits = startTypeUnits;
app.displayDialogs = startDisplayDialogs;

Kategorien
PhotoShop

Photoshop: Mehr als 31 Zeichen lange Dateinamen unter „Für Web Speichern…“

Ggf. möchte man mehr als 31 Zeichen lange Dateinamen vergeben. Photoshop schneidet die aber aus Gründen der Kompatibilität zu MAC OS9 und Unix die Namen ab. Dies läst sich einfach ändern – ist aber gut versteckt: (Unter CS2 Win.)

  • Im Fenster „Für Web speichern…“ neben den Voreinstellungen auf den kleinen Pfeil klicken
  • Dort „Ausgabeeinstellungen bearbeiten…“ wählen
  • Dann über die der Auswahlliste zu „Dateien speichern“ springen
  • Und hier dann im Bereich „Dateinamenkompatibilität“ MAC OS 9 und Unix deaktivieren
Kategorien
PhotoShop

Photoshop: ICO-Format (Windows Icons, Favicons) direkt speichern

Photoshop kann auch in der aktuellen Version (CS4) noch immer nicht direkt das .ico-Dateiformat erstellen. Dabei benötigt man das Format z.B. für Favicons für Websites.

Mit den kostenlosen kleinen Format-Plugin von www.telegraphics.com.au geht’s dann trotzdem! Einfach unter www.telegraphics.com.au/sw/#icoformat die Datei ICOFormat.8bi herunterladen und in den Ordner: C:\Programme\Adobe\Adobe Photoshop CSX\Zusatzmodule\Dateiformat (bzw. C:\Program Files\Adobe\Adobe Photoshop CSX\Plugins\File Formats) kopieren.

Über „Speichern unter…“ dann das *.ICO-Format auswählen.

Gesehen bei:
www.tipps-tricks-kniffe.de/photoshop-ico-mit-photoshop-ico-dateien-icons-erstellen/
www.photoshop-weblog.de/10-kostenlose-plugins/

Kategorien
PhotoShop

Photoshop Script: Mehrere Bilder auf gemeinsame Breite skalieren

Skaliert alle geöffneten Bilder im Photoshop auf einen vorgegebene gemeinsame Breite.

Beispiel: Will man mehrere unterschiedlich formatierte (breit- und hochformatige) Bilder auf einer Website platzieren und hat dazu 900 Pixel in der Breite, kann dieses Script alle Bilder auf eine gemeinsame Höhe und der gegebenen Breite skalieren.

//####################################################################
//
//  Arrange / resize images (same height) to a given total width
//  Photoshop Script (CS2, tested on PC) 
//
//####################################################################

// save the current preferences & settings
var startRulerUnits = app.preferences.rulerUnits
var startTypeUnits = app.preferences.typeUnits
var startDisplayDialogs = app.displayDialogs
app.preferences.rulerUnits = Units.PIXELS
app.preferences.typeUnits = TypeUnits.PIXELS
app.displayDialogs = DialogModes.NO

// main script
var docs = app.documents;
var openDocs = docs.length;

var totalWidth = prompt('Total available width:', '500');
var spareWidth = prompt('Gap between pictures:', '0');
var totalSpare = spareWidth * (openDocs-1);
totalWidth = totalWidth - totalSpare;

// get height of all images and store in array
var imgSize = new Array();

for (var i=0; i<openDocs; i++) {
	app.activeDocument = docs[i];
	imgSize[i] = new ent(i, app.activeDocument.height);
}

// sort 2-dim. array  -> http://www.webmasterbiz.de/showthread.php?t=618
imgSize.sort(cmpnum);

var smallestCommonHeight = imgSize[0].height;
var totalOriginalWidth = 0;

// all images resize to smallestCommonHeight
for (var i=0; i<openDocs; i++) {
	app.activeDocument = docs[i];
	app.activeDocument.resizeImage(null, smallestCommonHeight, null, ResampleMethod.BICUBIC)
	totalOriginalWidth = totalOriginalWidth + app.activeDocument.width;
}

var summary = "Summary:\n";
var resizeValue = totalWidth / totalOriginalWidth;

// all images resize to the right width
for (var i=0; i<openDocs; i++) {
	app.activeDocument = docs[i];
	var newWidth = app.activeDocument.width * resizeValue;
	app.activeDocument.resizeImage(newWidth, null, null, ResampleMethod.BICUBIC)
	summary = summary + app.activeDocument.name + ": " + 
						app.activeDocument.width + " / " + 
						app.activeDocument.height + "\n";
}

// restore settings
app.preferences.rulerUnits = startRulerUnits;
app.preferences.typeUnits = startTypeUnits;
app.displayDialogs = startDisplayDialogs;

// finish!
alert(summary);

// array -> http://www.webmasterbiz.de/showthread.php?t=618
function ent(imgnr, height) {
    this.imgnr = imgnr;
	this.height = height;
}

// sort array by height
function cmpnum(inp1, inp2) {
    return inp1.height - inp2.height;
}
Kategorien
PhotoShop

Photoshop-Warnung: Einige Namen der zu speichernden Dateien enthalten nichtlateinische Zeichen…

Verwendent man im Photoshop die Funktion „Für Webspeichern…“, erscheint folgende Meldung auch dann, wenn der Dateinamen gar keine nicht-lateinischen Zeichen beinhaltet.


„Einige Namen der zu speichernden Dateien enthalten nichtlateinische Zeichen, die mit einigen Web-Browsern und Servern nicht kompatibel sind.“

Das passiert, weil man wahrscheinliche das Bild in einem Ordner bzw. Unterordner versucht zu speichern, welche Sonderzeichen enthalten!

Kategorien
PhotoShop

Photoshop: Scripts und Aktionen am Bildschirm mitverfolgen

Als Standard ist für Aktionen (das gilt auch für Scripts) im Photoshop „beschleunigt“ eingestellt. D.h. man sieht die einzelnen Schritte einer Aktion/Script nicht am Bildschirm.
Manchmal will/muss man aber in die laufende Aktion eingreifen oder einfach den Fortschritt mitverfolgen.

Und so stellt man es ein:

Das kann auch innerhalb eines Scripts angegeben werden:
http://www.ps-scripts.com/bb/viewtopic.php?t=2633&highlight=show+actions+screen

Kategorien
PhotoShop

Photoshop Script: Multipage PDF to JPG

Script für Photoshop (getestet mit CS2 auf PC) das PDF-Dateien mit mehreren Seiten in einzene JPG-Bilder konvertiert und speichert.

Wichtig: Nicht über das ExtendScript Toolkit ausführen (Debugger stoppt), sondern direkt über Datei > Scripten (> Durchsuchen).

//###################################################################
//
//  PDF to JPG (Supports Multipage PDF)
//  Photoshop Script (CS2, tested on PC)
//  unckel.de
//
//###################################################################

// main settings
var pdfSourcePath = "C:\\Test\\PDF\\";
var jpgTargetPath = "C:\\Test\\JPG\\";

var pdfResolution = 150; // dpi
var pdfPagesLoop  = 25;  // search to multipages (try and error)
var jpgQuality    = 12;  // 1-12, best quality = 12

//###################################################################

// save settings and customize environment
var startRulerUnits = app.preferences.rulerUnits;
var startTypeUnits = app.preferences.typeUnits;
var startDisplayDialogs = app.displayDialogs;
app.preferences.rulerUnits = Units.PIXELS;
app.preferences.typeUnits = TypeUnits.PIXELS;
app.displayDialogs = DialogModes.NO;

// list of all files
var picFolder = Folder(pdfSourcePath);
var fileList = picFolder.getFiles();

// exists source and target?
if (pdfSourcePath != null && jpgTargetPath != null) {

  // open all files
  for (var i = 0; i < fileList.length; i++) {

    // opens multipage PDFs
    for (var j = 1; j < pdfPagesLoop; j++) {

      // PDF options
      var pdfOpenOptions = new PDFOpenOptions;
      pdfOpenOptions.antiAlias = true;
      pdfOpenOptions.mode = OpenDocumentMode.RGB;
      pdfOpenOptions.resolution = pdfResolution;
      pdfOpenOptions.page = j;

      // try to open, save and close
      try {
        open(fileList[i], pdfOpenOptions);
        SaveAsJpg(app.activeDocument.name, jpgTargetPath, jpgQuality);
        app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
      }
      catch (e) {
        //alert(e.description);
      }
    }
  }
}

// restore settings
app.preferences.rulerUnits = startRulerUnits;
app.preferences.typeUnits = startTypeUnits;
app.displayDialogs = startDisplayDialogs;

alert("Done!");

//###################################################################

function SaveAsJpg(fileName, filePath, jpgQuality) {
  var saveFile = new File(filePath + "/" + fileName + ".jpg");
  jpgSaveOptions = new JPEGSaveOptions();
  jpgSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
  jpgSaveOptions.embedColorProfile = true; // important if shown on browsers
  jpgSaveOptions.quality = jpgQuality;
  app.activeDocument.saveAs(saveFile, jpgSaveOptions, true, Extension.LOWERCASE);
}

Weitere Infos:
http://www.whatspop.com/blog/archive/2007_01_01_archive.cfm

Kategorien
PhotoShop

Photoshop Script: Mehrere Bilder formatabhängig in ein Bild zusammen setzen

Setzt mehrere geöffnete Bilder in ein Bild zusammen, abhängig vom Format (breit/hoch).

//#####################################################################
//
//  Crop all open images and merge together in one image dependent size
//  Photoshop Script (CS2, tested on PC) 
//
//#####################################################################

// save the current preferences & settings
var startRulerUnits = app.preferences.rulerUnits
var startTypeUnits = app.preferences.typeUnits
var startDisplayDialogs = app.displayDialogs
app.preferences.rulerUnits = Units.PIXELS
app.preferences.typeUnits = TypeUnits.PIXELS
app.displayDialogs = DialogModes.NO

// main script
var docs = app.documents;
var openDocs = docs.length;

// crop all open images from border
var cropSize = prompt('Crop from border (in pixel).', '');

for (var i=0; i<openDocs; i++) {

	app.activeDocument = docs[i];
	app.activeDocument.changeMode(ChangeMode.RGB);

	// don't crop if no value or image is smaller
	if (cropSize != '' && cropSize > 0 && 
		cropSize < app.activeDocument.width && 
		cropSize < app.activeDocument.height) { 
			cropWidthFromBorder(cropSize);
	}
}

// resize canvas on first image dependent on image size
var pano;
app.activeDocument = docs[0];

if(app.activeDocument.width > app.activeDocument.height) {
	pano = true;
	app.activeDocument.resizeCanvas(app.activeDocument.width, 
		app.activeDocument.height * openDocs, AnchorPosition.TOPLEFT);
}
else {
	pano = false;
	app.activeDocument.resizeCanvas(app.activeDocument.width * openDocs, 
		app.activeDocument.height, AnchorPosition.TOPLEFT);
}

// put all images into first image
for (var j=1; j<openDocs; j++) {

	app.activeDocument = docs[j];
	app.activeDocument.activeLayer.copy();
	app.activeDocument = docs[0];

	if(pano) {
		setSection(0, app.activeDocument.height/2, 
			app.activeDocument.width, app.activeDocument.height);
	}
	else {
		setSection(app.activeDocument.width/2, 0, 
			app.activeDocument.width, app.activeDocument.height);
	}

	app.activeDocument.paste();
}

app.activeDocument.flatten();

// close all open images except the first
//if (confirm('Close all images except the first one?')) {
	for (var x=1; x<openDocs; x++) {
		docs[x].close(SaveOptions.DONOTSAVECHANGES)
	}
//}

// restore settings
app.preferences.rulerUnits = startRulerUnits;
app.preferences.typeUnits = startTypeUnits;
app.displayDialogs = startDisplayDialogs;

//alert("Done!");

//####################################################################

function cropWidthFromBorder(cropWidth) { 
	app.activeDocument.crop(Array(cropWidth,
		cropWidth,
		app.activeDocument.width - cropWidth,
		app.activeDocument.height - cropWidth));
}

function setSection(left, top, width, height) {
	var selRegion = Array(
		Array(left, top),
		Array(left + width, top),
		Array(left + width, top + height),
		Array(left, top + height),
		Array(left, top));
	app.activeDocument.selection.select(selRegion);
}
Kategorien
PhotoShop

Photoshop: Versehentliches Umschalten des Tastaturlayouts

Ab und zu passiert es mir (wohl bei zu eifriger Arbeit mit Photoshop), daß plötzlich das Tastaturlayout geändert wurde. Merkt man gleich daran, daß z.B. [Strg] + [Z] (Rückgängig) nicht mehr funktioniert.

Das Problem:
Unter Windows (XP) wird über [Strg] + [Alt] das Tastaturlayout geändert (z.B. von DE auf EN). Im Adobe Photoshop gibt es unter anderem aber die Tastenkombinationen für „Für Web speichern“ [Alt] + [Umschalt] + [Strg] + [S] oder mehrfaches Rückgängig mit [Alt] + [Strg] + [Z] uws.

Die Lösung:
Entweder im Photoshop oder besser, da seltener gebraucht, in der Systemsteuerung die Tastenkürzel ändern. Oder das Umschalten per Kürzel einfach deaktivieren.

Kategorien
PhotoShop

Photoshop bleibt beim Start hängen

Ursache für die Startprobleme bei Photoshop (CS2/PC) kann eine beschädigte Voreinstellungsdatei sein. Löscht man diese, wird die Datei automatisch beim nächsten Start wieder erstellt und Photoshop starten wieder.

Die Voreinstellungsdatei findet sich unter:
C:\Dokumente und Einstellungen\Profilname\Anwendungsdaten\Adobe\Photoshop\9.0\Adobe Photoshop CS2 Settings\Adobe Photoshop CS2 Prefs.psp

Evtl. muss über den Windows Explorer -> Extras -> Ordneroptionen -> Ansicht die Versteckten Dateien und Ordner eingeblendet werden.

Achtung: Dabei gehen jedoch alle Voreinstellungen samt den Werkzeugspitzen, Aktionen usw. verloren sofern man diese nicht explizit gespeichert hat!