Anzahl der Ebenen in Photoshop zählen

9220
Mayo

Gibt es eine Möglichkeit, die Anzahl der Ebenen in einer .psd-Datei zu ermitteln?

Ich habe .psds, die sich schrecklich verlangsamen. Es gibt 20-30 Layer-Comps und eine unbekannte Anzahl von Layern. 1000? 5,0000 Ich weiß es nicht.

Der Grund dafür ist, festzustellen, an welchem ​​Punkt Photoshop zu ersticken beginnt. Wenn ich Photoshop mit 90 verfügbarem Speicher belegt habe, werden schnell 11 GB benötigt, um die Box für andere Zwecke zu verlangsamen. Wenn ich 50% (7 GB) belasse, gibt es eine Pause, wenn ich selbst die kleinste Ebene dupliziere (etwa ein Häkchen, das in den Bereich geht) ein Kontrollkästchen).

2

6 Antworten auf die Frage

5
joojaa

Sie können dazu das python psdtools-Paket verwenden :

from __future__ import print_function from psd_tools import PSDImage  psd = PSDImage.load('my_image.psd') print("file has {} layers".format(len(psd.layers))) 
Ich habe Probleme beim Herunterladen dieses Pakets bei der Arbeit. Ich bekomme keinen Administratorzugang, um psdtools (oder 7-zip) herunterzuladen. Werde es zu Hause überprüfen. Mayo vor 8 Jahren 0
1
AAGD

Nur ein Gedanke: Wenn Sie sich auf einem Mac befinden, kann die Dateiinfo des Finders (cmd-i) hilfreich sein, da sie alle Namen der Layer aufführt, ohne die Datei zu öffnen. Sie könnten dies in einen Texteditor mit Zeilennummerierung kopieren und alle Kommas durch Zeilenvorschub ersetzen. Die Zeilennummerierung würde die Anzahl der Layer anzeigen (ich habe nicht getestet, was mit Kommas in Layernamen geschieht).

BEARBEITEN:

Eine weitere Erkenntnis: Gimp hat eine Infotafel, die die Lagenanzahl für eine psd - Datei zeigt (Menü: Image > Image Properties)

gimp psd layercount

Interessant. Leider bin ich nicht auf einem Mac. Ich habe das gesehen, als ich googelte. Ich habe diese Option für einen PC nicht gesehen. Mayo vor 8 Jahren 0
Vielleicht hilft das, auf einen Blick sieht es nicht mac-spezifisch aus: http://blog.kyletunneyphotography.com/counting-layers-in-photoshop/ AAGD vor 8 Jahren 0
Vielen Dank. Ich habe das während der Suche (nach dem Posting) gesehen, und ich sehe, dass Rishab Ag den Text von dieser Site kopiert und eingefügt hat. Werde es ausprobieren. Mayo vor 8 Jahren 0
0
Rishab

Leider gibt es keine automatische Funktion zum Zählen der Ebene, aber hier können Sie dieses Skript verwenden.

var totalProgress = 0// I assume this is defined eleswhere but is needed for the scriptler function layerCounter(inObj) // recursive function to count layers { totalProgress+= inObj.artLayers.length;  for( var i = 0; i < inObj.layerSets.length; i++) { totalProgress++; layerCounter(inObj.layerSets[i]); // recursive call to layerCounter } return totalProgress; }  function getLayerCount(){ function getNumberLayers(){ var ref = new ActionReference(); ref.putProperty( charIDToTypeID("Prpr"), charIDToTypeID("NmbL") ) ref.putEnumerated( charIDToTypeID("Dcmn"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") ); return executeActionGet(ref).getInteger(charIDToTypeID("NmbL")); }  function getLayerType(idx) { var ref = new ActionReference(); ref.putProperty( charIDToTypeID("Prpr"), stringIDToTypeID("layerSection")); ref.putIndex(charIDToTypeID( "Lyr " ), idx); return typeIDToStringID(executeActionGet(ref).getEnumerationValue(stringIDToTypeID('layerSection'))); }; var cnt = getNumberLayers(); var res = cnt; if(activeDocument.layers[activeDocument.layers.length-1].isBackgroundLayer){ var i = 0; //comment out line below to exclude background from count res++; }else{ var i = 1; };  for(i;i<cnt;i++){ var temp = getLayerType(i); if(temp == "layerSectionEnd") res--; //if(temp == '"layerSectionStart") res--;//uncomment to count just artLayers }; return res; };  function main() { var answer = confirm("Go through your file and count all the layers??"); if(answer) { var reporter1 = layerCounter(app.activeDocument); alert("Kyletunney.com - All done! Layer count = " + reporter1); } else { reporter2 = getLayerCount(); alert("Kyletunney.com - All done! Layer count = " + reporter2);  }  }  main(); 

Speichern Sie das Skript als .jsx

Wie benutze ich das Skript?

  • Öffnen Sie Photoshop mit der Datei, die Sie zählen möchten
  • Klicken Sie auf 'Datei'
  • Dann 'Skripte'
  • Klicken Sie jetzt auf "Durchsuchen".
  • Suchen Sie das gerade gespeicherte Skript und klicken Sie auf Laden
  • Sie werden nun aufgefordert, 'Durch Ihre Datei gehen und alle Ebenen zählen?' Klicken Sie auf "Ja".
  • Sie werden nun über die Anzahl der Layer in Ihrer Datei informiert!
Ich habe dieses Skript zweimal ausprobiert. Beide Male stürzte Photoshop ab. Vielleicht funktioniert es mit einer Datei mit 10 Schichten. Aber mit Hunderten hat es nicht funktioniert. Oder sind es Tausende? Mayo vor 8 Jahren 0
seltsamerweise meldet dieses Skript 48 Ebenen in einer Datei mit 38 Ebenen .. :( SpaceDog vor 8 Jahren 0
0
JfgDev

Ok, this may sound silly simple (if you have Photoshop), but the easiest way is to open the document in Photoshop and click the New Layer button at the bottom of the layers panel. The new layer will automatically be named "Layer 450" or one more than the number of the layers currently in the document.

0
SpaceDog

Wenn Sie einen Mac verwenden, führen Sie dieses Skript im Skript-Editor aus:

tell application "Adobe Photoshop CC 2015.5" activate set theDOC to the current document tell theDOC set numberOfLayers to count of layers display dialog numberOfLayers as string end tell end tell 
0
Goosfraba

Mach Folgendes:

  1. Klicken Sie in der Statusleiste in der unteren linken Ecke des Bearbeitungsfensters auf den nach rechts zeigenden Pfeil.

Fenster mit Statusleiste bearbeiten: Der nach rechts zeigende Pfeil ist hervorgehoben.

  1. Wählen Sie im angezeigten Popup-Menü "Layer Count" aus.
  2. Lesen Sie die Anzahl der Layer in der Statusleiste.

In der Statusleiste wird angezeigt: 108 Schichten, 18 Gruppen

@FleetCommand, vielen Dank, dass Sie gezeigt haben, wie Sie eine gute Antwort schreiben. fixer1234 vor 7 Jahren 1
@Burgi Ja, ich weiß, aber ich war ein bisschen erstaunt über die komplizierte Kodierung und das Material im Vergleich zu 2-Klicks-Lösungen (mit Bildern kompensiert). Goosfraba vor 7 Jahren 0