// ----獲取位置/寬高信息
var el = app.activeDocument.selection[0]
alert(getRealySize(el))
// 第一種
// alert(el.top)
// alert(el.left)
// alert(el.width)
// alert(el.height)
// 第二種
// alert(el.visibleBounds) // 可見范圍(包含描邊的)
// 第三種
// alert(el.geometricBounds) // 幾何范圍(不包含描邊)
// ----獲取位置/寬高信息
function getRealySize(el) {
var arr = []
var leftArr = []
var topArr = []
var rightArr = []
var bottomArr = []
function getRealySizeEl(el, arr) {
// 如果是剪切組, 將蒙版路徑放置進去
if (el.clipped) {
arr.push({
el: el.pageItems[0],
isClippedPath: true
})
return
}
// 如果不是剪切組, 但是你自身又是一個組, 說明組里面可能有剪切組
if (el.constructor.name == "GroupItem") {
for (var i = 0; i < el.pageItems.length; i++) {
getRealySizeEl(el.pageItems[i], arr)
}
return
}
// 如果不是剪切組, 將自身放置進去
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ǎo)致的法律責任,
本站有權(quán)保留或刪除有爭議評論。
參與本評論即表明您已經(jīng)閱讀并接受
上述條款。