caishikun12 发表于 2023-7-25 14:55:06

复制所选内容的尺寸 如何选择剪切蒙版后的尺寸

// 获取当前文档和所选内容
var doc = app.activeDocument;
var selection = doc.selection;

// 获取当前文档的单位
var originalUnits = doc.rulerUnits;

// 设置文档单位为像素
doc.rulerUnits = 0; // 0 表示像素

// 获取所选内容的边界框(包括描边宽度)
var bounds = getBounds(selection);

// 将边界框宽度和高度转换为毫米单位,并精确到第四位小数
var width = pixelsToUnits(bounds - bounds, "mm").toFixed(4);
var height = pixelsToUnits(bounds - bounds, "mm").toFixed(4);

// 将宽度和高度复制到剪贴板
var formattedWidth = width.toString().replace(/(\.\d+?)0+$/, "$1");
var formattedHeight = height.toString().replace(/(\.\d+?)0+$/, "$1");

var formattedWidth = formattedWidth.replace(" cm", "");
var formattedHeight = formattedHeight.replace(" cm", "");

var clipboardText = "宽度:   " + formattedWidth + "\n\n" + "高度:   " + formattedHeight;
copyTextToClipboard(clipboardText);

// 还原原始的文档单位
doc.rulerUnits = originalUnits;

// 获取所选内容的边界框(不包括描边宽度)
function getBounds(selection) {
var bounds = selection.geometricBounds;

for (var i = 1; i < selection.length; i++) {
    var objBounds = selection.geometricBounds;
    bounds = Math.min(bounds, objBounds);
    bounds = Math.max(bounds, objBounds);
    bounds = Math.max(bounds, objBounds);
    bounds = Math.min(bounds, objBounds);
}

return bounds;
}

// 将像素值转换为指定单位的值
function pixelsToUnits(value, unit) {
var conversionFactor = 0.035277778; // 1 像素 = 0.035277778 厘米
return value * conversionFactor;
}

// 复制文本到剪贴板的函数
function copyTextToClipboard(text) {
try {
    var textFile = new File(Folder.temp + "/clipboard.txt");
    textFile.open("w");
    textFile.write(text);
    textFile.close();
    textFile.execute();
} catch (e) {
    alert("无法将文本复制到剪贴板。");
}
}




复制所选内容的尺寸 如何选择剪切蒙版后的尺寸,而不是包括选择蒙版内的尺寸



caishikun12 发表于 2023-7-25 14:58:18

AI 脚本 ,请大佬们赐教,如何修改此脚本 ,使其能正确选择有剪切蒙版框后的尺寸
页: [1]
查看完整版本: 复制所选内容的尺寸 如何选择剪切蒙版后的尺寸