Photoshop-Cafe.de :: Dein Photoshop-Forum

Photoshop-Cafe.de :: Dein Photoshop-Forum (https://www.photoshop-cafe.de/forum/index.php)
-   Hilfestellung, Tipps und Tricks (https://www.photoshop-cafe.de/forum/forumdisplay.php?f=30)
-   -   Ebenen zählen (https://www.photoshop-cafe.de/forum/showthread.php?t=2970)

Smokey_lo1 03.08.08 10:59

danke für den Tipp.
habe mal ne Datei mit 150 Ebenen getstet und da braucht mein Rechner 30sec.
OK dachte ich mir mache ich mal eine Datei auf die richtig groß ist und nun werkelt er schon seit ner halben Stunde.
muss das mal auf meinen großen Rechner versuchen(geht aber erst heute Abend, da ich noch auf Arbeit bin)
Ich getrau mich gar nicht zu fragen.....
.
.
.

könnte man das noch ein wenig beschleunigen?

Edit: jetzt ist er fertig...hat wie gesagt ne halbe Stunde gedauert
86 Ebenenset´s und 1012 Ebenen

phoenix 03.08.08 18:37

Undankbares Volk :tease:

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 


Smokey_lo1 03.08.08 19:04

kommt ungefähr auf das selbe raus.
aber denke mir wenn ich 70 Stunden oder mehr in eine Textur stecke kann ich auch ne halbe Stunde das script dadddeln lassen.

Danke dir also nochmal. finde das script echt spitze

den Ansatz mit dem Hexedit hatte ich auch schon nur habe ich da auch noch nicht drinne gefunden.

phoenix 03.08.08 19:08

Was für ne CPU hast Du eigentlich verbaut? Und mit welchem Takt läuft sie?

phoenix 03.08.08 19:53

Q6600@3GHz, 2500x2500@500dpi, 127 Ebenenset´s (wild verschachtelt) und 1500 Ebenen + 1 Hintergrundebene, Laufzeit 32 Minuten. Wer hier ganz gewaltig Optimierungsbedarf hat, entlarvt der Taskmanager. CPU Auslastung 25%, also wieder ein althergebrachtes Problem von Adobe, die es nicht für nötig halten Multiprocessing/Multithreading einzubauen. Die können froh sein dass Intel keine Cell oder Sparc64 herstellt ...

Smokey_lo1 03.08.08 20:31

Ich habe einen E6600 @ 3GHz mit 8Gig Ram (Vista 64)
Da kommst du ungefähr auf die selbe Zeit.
Habe das aber auch gemerkt das meine CPU Auslastung nicht gerade hoch ist wenn ich das script an werfe.
also bringt mir ein c2d oder ein q gar nichts. das wär natürlich mal was wenn da Adobe mal was dagegen tun würde....und wenn sie einmal drüber sind könnten die eigentlich auch gleich mal ein 64bit Photoshop mit dran hängen. Das ich ml mehr als 3255 Ram benutzen könnte

phoenix 03.08.08 20:55

Und wenn sie schon dabei sind, Pinsel und ähnliches nutzten auch nie mehr als einen Kern, gerade beim Wischfinger eine Katastrophe :)

Smokey_lo1 03.08.08 21:15

Ich sehe wir verstehen uns.
mir würden da noch viel mehr dinge einfallen, was sie noch ändern könnten.

blindguard 03.08.08 23:13

die müssen sich ja außer werkzeug- und filterumbenennungen noch ein "paar" dinge für die nächsten updates aufheben :whistling, die sie dann wieder mit wenig innovativen brauchbaren neuerungen für teuer geld an den mann bringen :tease:

Smokey_lo1 16.08.08 02:24

ich muss noch mal ein wenig wegen den script´en nach fragen.
du hast in deinem script schön dahinter geschrieben was die einzelnen "Befehle" so machen.
gibt es sowas irgendwo runter zu laden?
ich bin gerade daran mir das Handbuch für Skriptprogrammierung durchzu lesen.
die anderen Handbücher die ich so gefunden habe sind leider alle auf englich und bringen mich gerade nicht so weiter.

Gruß Nico


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:44 Uhr.

Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
©2005-2024 photoshop-cafe.de

Seite wurde generiert in 0,02143 Sekunden mit 8 Queries