I thought I would put this here as posts don't last very long at the Adobe site.
This is by Larry Ligon
var bounds = new Array();
var docRef = activeDocument;
preferences.rulerUnits = Units.PIXELS;
var layerSetRef = docRef.layerSets.add();
var layerRef = layerSetRef.artLayers.add();
docRef.activeLayer = layerRef;
docRef.selection.fill( app.foregroundColor);
bounds = layerSetRef .bounds;
alert("bounds = " + bounds );
layerSetRef.remove();
Make a selection and run this script.
Xbytor has a version that works by using paths. It can be found as part of his XToolkit at bb/viewtopic.php?t=369
How to determine the selection size in CS2
-
Topper
How to determine the selection size in CS2
This is exactly where I'm stuck at the moment. I tried to find XBytors solution, but his package did not install correctly. I just need to know why I get a "PS Error 8800: Command GET is not available" everytime I try to access the bounds property of a selection. There is something selected and I'm just using these two lines:
Code: Select allvar bounds = new Array();
bounds = activeDocument.selection.bounds;
Thx in advance!
P.S: This forum has already helped me with some other issues. Keep up the good work!
Code: Select allvar bounds = new Array();
bounds = activeDocument.selection.bounds;
Thx in advance!
P.S: This forum has already helped me with some other issues. Keep up the good work!
-
xbytor
How to determine the selection size in CS2
Yes, Selection.bounds is broken. Here's the code that works.
Code: Select allcTID = function(s) { return app.charIDToTypeID(s); };
Stdlib = function() {};
Stdlib.hist = function(dir) {
function _ftn() {
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putEnumerated(cTID("HstS"), cTID("Ordn"), cTID(dir));
desc.putReference(cTID("null"), ref);
executeAction(cTID("slct"), desc, DialogModes.NO);
}
_ftn();
};
Stdlib.undo = function () {
Stdlib.hist("Prvs");
};
Stdlib.redo = function () {
Stdlib.hist("Nxt ");
};
Stdlib.hasSelection = function(doc) {
var mode = app.displayDialogs;
var res = false;
try {
app.displayDialogs = DialogModes.NO;
doc.selection.contract(0);
Stdlib.undo();
res = true;
} catch (e) {
} finally {
app.displayDialogs = mode;
}
return res;
};
And please follow up with me in the XToolkit thread and we will see if we can get your installation issue worked out.
Code: Select allcTID = function(s) { return app.charIDToTypeID(s); };
Stdlib = function() {};
Stdlib.hist = function(dir) {
function _ftn() {
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putEnumerated(cTID("HstS"), cTID("Ordn"), cTID(dir));
desc.putReference(cTID("null"), ref);
executeAction(cTID("slct"), desc, DialogModes.NO);
}
_ftn();
};
Stdlib.undo = function () {
Stdlib.hist("Prvs");
};
Stdlib.redo = function () {
Stdlib.hist("Nxt ");
};
Stdlib.hasSelection = function(doc) {
var mode = app.displayDialogs;
var res = false;
try {
app.displayDialogs = DialogModes.NO;
doc.selection.contract(0);
Stdlib.undo();
res = true;
} catch (e) {
} finally {
app.displayDialogs = mode;
}
return res;
};
And please follow up with me in the XToolkit thread and we will see if we can get your installation issue worked out.