// ----�@ȡλ��/������Ϣ
var el = app.activeDocument.selection[0]
alert(getRealySize(el))
// ��һ�N
// alert(el.top)
// alert(el.left)
// alert(el.width)
// alert(el.height)
// �ڶ��N
// alert(el.visibleBounds) // ��Ҋ����(������߅��)
// �����N
// alert(el.geometricBounds) // �η���(��������߅)
// ----�@ȡλ��/������Ϣ
function getRealySize(el) {
var arr = []
var leftArr = []
var topArr = []
var rightArr = []
var bottomArr = []
function getRealySizeEl(el, arr) {
// ����Ǽ��нM, ���ɰ�·�������Mȥ
if (el.clipped) {
arr.push({
el: el.pageItems[0],
isClippedPath: true
})
return
}
// ������Ǽ��нM, ��������������һ���M, �f���M��������м��нM
if (el.constructor.name == "GroupItem") {
for (var i = 0; i < el.pageItems.length; i++) {
getRealySizeEl(el.pageItems[i], arr)
}
return
}
// ������Ǽ��нM, �����������Mȥ
arr.push({
el: el,
isClippedPath: false
})
}
function minInArr(arr) {
var min = arr[0];
for (var i = 1; i < arr.length; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
function maxInArr(arr) {
var max = arr[0];
for (var i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
getRealySizeEl(el, arr)
for (var i = 0; i < arr.length; i++) {
if (i.isClippedPath) {
// ����Ǽ����ɰ�, �@ȡ������߅��߅��
leftArr.push(arr[i].el.geometricBounds[0])
topArr.push(arr[i].el.geometricBounds[1])
rightArr.push(arr[i].el.geometricBounds[2])
bottomArr.push(arr[i].el.geometricBounds[3])
} else {
// ������Ǽ����ɰ�, �@ȡ����߅��߅��
leftArr.push(arr[i].el.visibleBounds[0])
topArr.push(arr[i].el.visibleBounds[1])
rightArr.push(arr[i].el.visibleBounds[2])
bottomArr.push(arr[i].el.visibleBounds[3])
}
}
var left = minInArr(leftArr)
var top = maxInArr(topArr)
var right = maxInArr(rightArr)
var bottom = minInArr(bottomArr)
return [left, top, right, bottom]
}
�Г�(d��n)�������О����(d��o)�µķ���؟(z��)����
��վ�Й�(qu��n)������h���Р��h�uՓ��
���c���uՓ���������ѽ�(j��ng)��x������
�����l����