Einzelnen Beitrag anzeigen
  #22  
Alt 03.08.08, 18:37
Benutzerbild von phoenix
phoenix phoenix ist offline
mother-brain
 
Registriert seit: 06/2005
Ort: Basel
Beiträge: 9.684
OS: Windows 8 x64
Kreativ-Software: CS6 x64
phoenix ist ein Photoshop-Spezialist und hilft wo es gehtphoenix ist ein Photoshop-Spezialist und hilft wo es gehtphoenix ist ein Photoshop-Spezialist und hilft wo es gehtphoenix ist ein Photoshop-Spezialist und hilft wo es gehtphoenix ist ein Photoshop-Spezialist und hilft wo es gehtphoenix ist ein Photoshop-Spezialist und hilft wo es gehtphoenix ist ein Photoshop-Spezialist und hilft wo es gehtphoenix ist ein Photoshop-Spezialist und hilft wo es gehtphoenix ist ein Photoshop-Spezialist und hilft wo es gehtphoenix ist ein Photoshop-Spezialist und hilft wo es gehtphoenix ist ein Photoshop-Spezialist und hilft wo es geht
Undankbares Volk

Teste diesen hier mal. Abfrage nach Hintergrundebene ist raus, das könnte die Laufzeit etwas verkürzen. Und mach gleich ne Messung bitte

Wenn man es richtig schnell haben möchte, darf man keine scripte nutzen. Dann muss man sich ein externes Addon bauen das entsprechend in C/C++ programmiert und kompiliert ist. Man könnte auch an einer anderen Stelle ansetzen ... wenn man Informationen über das PSD Dateiformat findet. Die Info über Ebenen und Ebenenset´s muss da irgendwo drin stehen, ein kurzer Blick in den Hexedit hat aber keine Ergebnisse geliefert.

PHP-Code:
//layerCounter.jsx checkt ob eine Hintergrundebene vorhanden ist und zählt die Anzahl der Ebenen im aktiven Dokument
//Ebenenset´s werden rekursiv berücksichtigt

#target photoshop
app.bringToFront(); //Photoshop in Vordergrund setzen

var docRef app.activeDocument;
var 
i;
var 
setText "Ebenenset´s"layerText "Ebenen";
var 
layerCount = new Array (), layerSetCount = new Array();

countAll (docRef); //Funktion countAll zählt alle im Dokument enthaltenen Ebenenset´s sowie Ebenen und prüft ob eine Hintergrundebene vorhanden ist
createMessage (); //Funktion createMessage gibt das Ergebnis von countAll in einer Messagebox in Photoshop aus

function countAll (docRef)
    { 
    for(var 
i0docRef.artLayers.lengthi++) //Mach einen Durchlauf pro vorhandener Ebene ...
        

        
layerCount.push (1//... erhöhe den Array-Zeiger für jede Ebene um 1 ...
        

        for (var 
0docRef.layerSets.lengthi++) //Mach einen Durchlauf pro vorhandenes Ebenenset ...
        
{
        
layerSetCount.push (1); //... erhöhe den Array-Zeiger für jedes Ebenenset um 1 ...
        
countAll (docRef.layerSets[i]); //... und zähle die im Ebenenset vorhandenen Ebenen
        
}
    }

function 
createMessage ()
    {
    if (
layerCount.length == 1//Wenn nur eine Ebene existiert ...
        
{
        
layerText "Ebene"//... Ebenen in Ebene umwandeln für korrekte Ausgabe ;-)
        
}
    if (
layerSetCount.length == 1//Wenn nur ein Ebenenset existiert ...
        
{
        
setText "Ebenenset"//... Ebenenset´s in Ebenenset umwandeln für korrekte Ausgabe ;-)
        
}
    
alert("Das Dokument enthält "+layerSetCount.length+" "+setText+" und "+layerCount.length+" "+layerText); //Message in Photoshop ausgeben
    
}

// (C) Copyright 2008 photoshop-cafe.de 
//code by phoenix 
__________________
http://photoshop-cafe.de/sig/themen_bewerten.gifhttp://photoshop-cafe.de/sig/bilder_und_schriften.gifhttp://photoshop-cafe.de/sig/tutorials.gifhttp://photoshop-cafe.de/sig/signaturleitfaden.gifhttp://photoshop-cafe.de/sig/forenleitfaden.gifhttp://www.photoshop-cafe.de/sig/stock-galerie.gif

design oder nicht sein

"So, we’ve got a full pot of coffee, half a pack of cigarettes, it’s dark out, and we’re coding. Hit it." - Synthesoft
Mit Zitat antworten
 
Seite wurde generiert in 0,03237 Sekunden mit 8 Queries