# Ebenen mit Ebenennamen speichern



## Alexander Groß (23. November 2009)

Hallo,

ich suche eine Möglichkeit viele Ebenen per Script etc. unter deren Namen als jpg zu speichern.

In PS habe ich nur die Möglichkeit gefunden das davor ein Präfix gesetzt wird (Datei -> Skripten -> Ebenen in Dateien exportieren). Ich will aber die Namen welche ich den Ebenen gegeben habe, auch so gespeichert haben.


Gruß

Alex


----------



## chmee (23. November 2009)

Gab es da nicht ein fertiges Script dafür? Ah, das ist es.. OK.. Nun denn, JSX-Script im Texteditor öffnen und Variable umbiegen 

Das ist das Script in Urform für PS/ etc..
http://www.kirupa.com/motiongraphics/scripting6_2.htm

```
displayDialogs = DialogModes.NO;
saveOptions = new PNGSaveOptions();

if ((documents.length != 0) && (activeDocument.saved)){

  var AD = activeDocument;
  var CurrentFolder = AD.path;
  var newFolder = AD.name+"_separated";
  var tempFolder = new Folder (CurrentFolder+"/"+newFolder);
  tempFolder.create();

  var tempLayer = AD.artLayers.add();
  var checkArray = new Array(AD.layers.length);

  for(a=1;a<=AD.layers.length;a++){
    var CL = AD.layers[a-1];
    if(!((CL.kind == LayerKind.TEXT)||(CL.kind == LayerKind.NORMAL)||(CL.kind == LayerKind.LayerSet))){
      checkArray[a-1] = 1;
    }
    if(CL.visible == 0){
      checkArray[a-1] = 2;
    }
  }

  for(a=1;a<=AD.layers.length;a++){
    AD.layers[a-1].visible = 0;
  }

  for(a=2;a<=AD.layers.length;a++){
    AD.layers[a-2].visible = 0;
    AD.layers[a-1].visible = 1;

    if((checkArray[a-1]!= 1)&&(checkArray[a-1]!= 2)){
      newFile = new File(tempFolder+"/("+(a-1)+")_"+AD.layers[a-1].name+".png");
      AD.saveAs (newFile,saveOptions, true, Extension.LOWERCASE);
    }
   }

  for(a=1;a<=AD.layers.length;a++){
    if(checkArray[a-1] == 2){
      AD.layers[a-1].visible = 0;
    }else{
      AD.layers[a-1].visible = 1;
    }
  }

   AD.layers[0].remove();

}else{

  alert("You either did not save the document or have no document opened !");

}
```
Wenn ich das Script richtig lese, ist dort schon der Layername drin, wird nur durch ein Präfix erweitert. 

Diese Zeile :

```
newFile = new File(tempFolder+"/("+(a-1)+")_"+AD.layers[a-1].name+".png");
```
sollte dann aussehen:

```
newFile = new File(tempFolder+"/"+AD.layers[a-1].name+".png");
```
Vorsicht, nicht getestet, also ausprobieren 

mfg chmee


----------



## Alexander Groß (23. November 2009)

Vielen Dank für die Mühe. 

Als alter  Forenhopper habe ich die Frechheit besessen die Frage auch noch in einem anderen Forum zu stellen. Und die Antwort dort ist für mich etwas besser verdaulich 

http://www.traum-projekt.com/forum/...nen-mit-ebenennamen-speichern.html#post937386

Gruß

Alex


----------



## chmee (23. November 2009)

Pfui 

mfg chmee


----------

