45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
|
|
|
|
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);
|
|
}
|
|
|
|
|
|
} |