﻿

function 图层排序改名(){

var doc = app.activeDocument;

// 函数：获取图层的面积
function getLayerArea(layer) {
    var bounds = layer.bounds;
    var width = bounds[2].value - bounds[0].value;
    var height = bounds[3].value - bounds[1].value;
    return width * height;
}

// 创建一个包含所有图层及其面积的数组
var layers = [];
for (var i = 0; i < doc.layers.length; i++) {
    var layer = doc.layers[i];
    var area = getLayerArea(layer);
    layers.push({ layer: layer, area: area });
}

// 按面积对图层进行排序
layers.sort(function(a, b) {
    return b.area - a.area; // 从大到小排序
});

// 正则表达式，用于移除图层名称中的最后一个字符
var regex = /(.+)-\d+$/;

// 重新排列图层，并重命名
for (var i = 0; i < layers.length; i++) {
    // 移动图层到文档顶部
    layers[i].layer.move(doc, ElementPlacement.PLACEATBEGINNING);

    // 获取原始图层名称，并使用正则表达式处理
    var originalName = layers[i].layer.name;
    var newName = originalName.replace(regex, "$1");

    // 添加新的排序编号
    layers[i].layer.name = newName + "-" + (i + 1);
}


}