Per Script alle Ebenen als PNG speichern

fastfred

Mitglied
Hallo Community,
ich habe ein Problem!
Ich habe das Design(Größe 920x480px) meiner neuen Internetseite in Photoshop CS2 angefertigt und möchte jetzt alle Ebenen als PNG exportieren.
Ich weiß, man kann es per "Datei->Skripten->Ebenen in Dateien exportieren" machen(habe das Script auch mit PNG ausgabe).
Nur das Prog exportiert alle Objekte so, dass alle PNG Dateien 920x480 groß sind. Zwar sind, die Objekte, alle an der gewünschten Stelle, aber ich würde gerne, dass Photoshop die Objekte in ihrer eigenen Größe exportiert(wenn der Button z.B. 25x25 groß ist, soll auch die entsprechende PNG-Datei 25x25 groß sein).
Nur wie mache ich das

Weiß jemand, was ich machen kann?

Gruß

Fast Fred
 
Warum erstellst du nicht eine Aktion, die dir anschliessend die Datein zuschneidet?

Ich hatte mir für dasselbe Problem auch mal ein Script geschrieben, kann heute Abned mal schaun, ob ich es noch finde. Ist allerdings in VBS, läuft also nur unter Windows.
 
Hallo hotschen,
habe mal eine Aktion erstellt, nur es ist halt auf dauer lästig, wenn man vorher erst jede einzelne Ebene anklicken muss. Zu dem muss ich immer den Dateinamen für's Speichern ändern, sonst wird die Datei davor überschrieben. Denke mal, dass man da was ändern kann, nur wie gesagt, ist es lästig jede Ebenen vorher anzuklicken.

Kannst du mir das VBS-Script posten, wenn du es findest?
Nutze Photoshop unter Windows, von daher wäre es kein Problem.

Vielen Dank schonmal für deine schnelle Hilfe!

Gruß

Fast Fred
 
Habs nicht mehr gefunden. War aber keine große Sache. Kopiere folgenden Code in eine neue Textdatei, passe den Speicherpfad an und speichere die Datei als "layer2file.vbs" ab. Anschliessend per Doppelklick starten. (Die Ebenendatei muss geöffnet und im Vordergrund sein)

Code:
Set appref = CreateObject("Photoshop.Application")
strtRulerUnits = appref.Preferences.RulerUnits
strtRulerUnits=appref.Preferences.RulerUnits
appref.Preferences.RulerUnits=1
Dim appref, docref, docref2, i, pngSaveOptions, pfad

'**********Hier den Speicherpfad angeben*************
pfad="C:\temp"
'****************************************************


If appref.Documents.count<>0 Then
	Set docref=appref.ActiveDocument
Else
	MsgBox "Erst eine Datei öffnen!"
	WScript.Quit
End If

Set pngSaveOptions = CreateObject("Photoshop.PNGSaveOptions")

For i=1 To docref.ArtLayers.count
	appref.activedocument=docref
	docref.activelayer=docref.ArtLayers(i)
	docref.Selection.Selectall
	docref.Selection.copy
	Set docref2=appref.Documents.add (docref.Width, docref.height, docref.Resolution, docref.artlayers(i).name & ".png",,3)
	docref2.paste
	docref2.Trim 0
	docref2.saveas pfad,pngSaveOptions
	docref2.close
Next 
	
appref.Preferences.RulerUnits=strtRulerUnits

Das Script kann auch ohne Probleme angepasst werden, um mehrere Dateien zu bearbeiten.
 
Hier noch die Version mit Berücksichtigung der Ebenstile. (Ich hoffe so meintest du das):
Code:
Dim appref, docref, docref2, i, pngSaveOptions, pfad,currentHistory 
Set appref = CreateObject("Photoshop.Application")

'**********Hier den Speicherpfad angeben*************
pfad="C:\temp"
'****************************************************

If appref.Documents.count<>0 Then
	Set docref=appref.ActiveDocument
Else
	MsgBox "Erst eine Datei öffnen!"
	WScript.Quit
End If

Set pngSaveOptions = CreateObject("Photoshop.PNGSaveOptions")

For i=1 To docref.artlayers.count
	docref.artlayers(i).visible=False
Next

For i=1 To docref.ArtLayers.count
	appref.activedocument=docref
	Set currentHistory = docref.activehistorystate
	docref.ArtLayers(i).visible=True
	docref.activelayer=docref.ArtLayers(i)
	docref.artlayers.add
	docref.mergevisiblelayers
	docref.Selection.Selectall
 	docref.Selection.copy
	docref.ActiveHistoryState = currentHistory
	docref.ArtLayers(i).visible=False
	Set docref2=appref.Documents.add (docref.Width, docref.height, docref.Resolution, docref.artlayers(i).name & ".png",,3)
  	docref2.paste
  	docref2.Trim 0
 	docref2.saveas pfad,pngSaveOptions
 	docref2.close
Next
 

Neue Beiträge

Zurück