PDA

Vollständige Version anzeigen : Javascript: Dimension der aktuellen Auswahl ermitteln


sebs
10.11.08, 16:02
Hallo zusammen,

ich bastle gerade an einem Skript (Javascript auf photoshop 8.0) und muss irgendwie an die Dimensionen der aktuell gesetzten Auswahl kommen.

Laut der Referenz von Adobe klappt das mit


//(User hat etwas markiert und führt nun das skript aus)
var selRef = activeDocument.selection;
var mybounds = selRef.bounds


wobei .bounds ein Array mit den Koordinaten der (rechteckigen) Auswahl sein sollte. Mein Problem: Dieser Array scheint garnicht zu existieren ("undefined"), obwohl er wie gesagt in der javascript-Referenz genannt wird.

Weiß jemand, was ich falsch mache, oder einen anderen Weg, um an diese Koordinaten zu kommen?

sebs
13.11.08, 11:19
Ich wurde inzwischen in einem anderen Forum ;) fündig, falls jemand mit dem selben Problem auf diesen Thread stößt:


getSelectionBounds = function(doc) {
var l = doc.artLayers.add();

doc.selection.fill(app.foregroundColor);

var bnds = l.bounds;
var hs = doc.historyStates;

if (hs[hs.length-2].name == "Layer Order") {
doc.activeHistoryState = hs[hs.length-4];
} else {
doc.activeHistoryState = hs[hs.length-3];
}

for (var i = 0; i < bnds.length; i++) {
bnds[i] = bnds[i].value;
}
return bnds;
}


gibt einen Array mit den Koordinaten zurück. Danke an xbytor von ps-scripts.com.

Problem bei meiner eigenen Lösung war, dass selection.bounds erst in CS2 implementiert ist.

phoenix
13.11.08, 11:24
Moin sebs,
willkommen im Photoshop Cafe.

Hab ich ein wenig zu spät gesehen, aber bei xbytor bist Du an den richtigen geraten ;)

Bin ja gespannt wie es in CS4 aussieht. Die fehlende Scriptkompatiblität und vorallem das Fehlen einfachster Funktionen wie Farbklecks via Pinsel setzen ist sowieso eine Zumutung ...

Was gibts denn für ein Script und für welchen Einsatzzweck?

Gruss,
phoenix

sebs
14.11.08, 18:07
Ein Großteil meiner Arbeitszeit geht dafür drauf, Screenshots für einen großen deutschen Freemail-Anbieter immer gleich mit Schlagschatten, Rundung etc. zu versehen. Das möchte ich automatisieren.

phoenix
14.11.08, 19:09
Verstehe. Kannst Dein Script wenns fertig ist auch gerne der Allgemeinheit zugänglich machen ;)