Einzelnen Beitrag anzeigen
  #12  
Alt 03.08.08, 05:07
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

Zitat:
Es gibt keine Lösung. Nur Tricks um über umwegen zum Ziel zu kommen.
Lösungen gibt es für viele Dinge, so auch hier. Meiner Meinung nach sogar mit Bordmitteln von Photoshop, da die Scriptengine zu Photoshop genauso dazugehört, wie ActionScript zu Flash oder die C++ Unterstützung zu Cinema oder Makros zu Word oder ...

Hier gibts den Download: http://www.photoshop-cafe.de/forum/s...5008#post45008

Und hier das Script zum selber speichern. Einfach in einer Textdatei (pur text!) als *.jsx speichern:
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 
ibg;
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 ...
        
if (docRef.artLayers[i].isBackgroundLayer == true//... und prüfe die Ebene auf Hintergrundebene. Wenn es sich um eine Hintergrundebene handelt, ...
            
{
            
bg true//... aktiviere bg
            
}
        } 
        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 (
bg == true//Wenn bg aktiv ist ...
        
{
        
layerCount.length--; //... layerCounter um eins verringern
        
correctText ();
        
alert("Das Dokument enthält eine Hintergrundebene, \n"+layerSetCount.length+" "+setText+" und "+layerCount.length+" "+layerText); //Message in Photoshop ausgeben
        
}
    else 
//Wenn bg nicht aktiv ist
        
{
        
correctText (setTextlayerText);
        
alert("Das Dokument enthält keine Hintergrundebene, \n"+layerSetCount.length+" "+setText+" und "+layerCount.length+" "+layerText); //Message in Photoshop ausgeben
        
}
    }

function 
correctText ()
    {
        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 ;-)
            
}
    }

// (C) Copyright 2008 photoshop-cafe.de 
//code by phoenix 
Und dann mit einem Doppelklick aus dem Browser heraus starten. Wenns so noch nicht läuft, dann fehlt dem Photoshop noch die Scriptunterstützung und muss zuerst aktiviert werden.

btw ... Guten Morgen Nico,
und willkommen im Photoshop Cafe.

Wenn es Probleme mit dem Speed geben sollte bei sehr grossen Dateien, meld dich nochmal, ich hab noch ne abgespeckte Version, die nicht auf das Vorhandensein der Hintergrundebene prüft und per sofort ein Ergebnis liefert. Es würde mich überhaupt interessieren, wie das Script mit solchen grossen Dateien zurechtkommt. Hab es jetzt nur mit kleineren Dateien getestet

Gruss,
phoenix


edit: hmm. Da hat Adobe wieder Mist gebaut. Ebenensets werden grundsätzlich erstmal als Ebene gezählt, der Inhalt dafür aussen vor gelassen. Heisst im Klartext, das Script taugt im jetzigen Zustand nur, um Ebenen in einem Dokument ohne Ebenenset´s zu zählen. Eine Erweiterung müsste man sich erstmal anschaun, wenn ich Lust habe und es klappt wie ich es mir vorstelle, liefere ich sie nach.
__________________
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

Geändert von phoenix (03.08.08 um 10:00 Uhr).
Mit Zitat antworten
 
Seite wurde generiert in 0,02942 Sekunden mit 8 Queries