Illustrator脚本开发获取真正位置尺寸-不包含描边
发布时间:2024-11-08 11:53 [ 我要自学网原创 ] 发布人: 快乐小女 阅读: 1075

function getRealySize2(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++) {
        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])
    }

    var left = minInArr(leftArr)
    var top = maxInArr(topArr)
    var right = maxInArr(rightArr)
    var bottom = minInArr(bottomArr)

    return [left, top, right, bottom]
}

Illustrator脚本开发教程
我要自学网商城 ¥70 元
进入购买
文章评论
0 条评论 按热度排序 按时间排序 /350
遵守中华人民共和国的各项道德法规,
承担因您的行为而导致的法律责任,
本站有权保留或删除有争议评论。
参与本评论即表明您已经阅读并接受
上述条款。
V
特惠充值
联系客服
APP下载
官方微信
返回顶部
分类选择:
电脑办公 平面设计 室内设计 室外设计 机械设计 工业自动化 影视动画 程序开发 网页设计 会计课程 兴趣成长 AIGC