Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  2 1456
Jeg har begynt å leke meg litt med javascript i Photoshop, men jeg sliter med at scriptene er ufattelig trege å kjøre

Her er et eksempel, dette scriptet itererer rekursivt igjennom alle layers i dokumentet, og dersom det aktuelle layeret er et text-layer så setter den antialias til Smooth:

Kode

// FUNCTION
function changeAntiAlias(target)
{
    // Get the layers of the active document
    var docLayers = target.layers;

    // For each layer in the document
    for (var i = 0; i < docLayers.length; i++)
    {
        // If the current layer is a LayerSet
        if (docLayers[i].typename == "LayerSet")
        {
            // Recursive: Re-run function with the current LayerSet as target
            changeAntiAlias(docLayers[i]);
        }

        // Else if the current layer is a text layer
        else if (docLayers[i].kind == LayerKind.TEXT)
        {
              docLayers[i].textItem.antiAliasMethod = AntiAlias.SMOOTH];
        };
    };
};
// Get the active document
var doc = app.activeDocument;
// Execute the function
changeAntiAlias(doc);
Kan noen forklare meg hvorfor dette er så tregt? Er det selve itereringen over alle layers som tar tid, eller er det endringen av antialias på teksten? Man skulle tro det var itereringen, men dersom jeg fjerner antialias-kommandoen så går det raskt, så tipper det er sistnevnte? Er det noe som kan optimeres for å få det til å gå raskere? Nå bruker den ca. 1 time på 300 layers (ish)

Lurer også på om det er vanskelig å få lagt til en progressbar, slik at man faktisk kan se hvor langt den er kommet i prosessen, noen tips?
Det er kanskje ikke så mange som driver med scripting i Photoshop Ser forøvrig at jeg har fått med en brakett for mye på slutten av linje 20, som dere skal teste så må den fjernes
Trigonoceps occipita
vidarlo's Avatar
Donor
Du kan jo forsøke å legge til timere på dei ulike operasjonane for å få eit bilete av kva som tar tid. Skriv tidsdifferansen før og etter du har gjort operasjonen på laget til eit array, og sjekk kor mykje tid den bruker på kvart lag. Det er første steget i all debugging av kvifor ting tar lenger tid enn forventa.

https://stackoverflow.com/questions/...-in-javascript tar for seg grunnkonsepta, og bør kunne tilpassast rimeleg lett