You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Photoshop中如何获取Art Layer的标签颜色属性?

Photoshop 原生 ArtLayer 接口未公开图层标签颜色的直接读取属性,你可以通过 ActionManager 的 executeActionGet 方法读取该属性,实现逻辑和你用到的设置操作对应,具体实现代码如下:

// 读取当前选中图层的标签颜色
function getLayerLabelColor() {
    var ref = new ActionReference();
    // 定位到当前选中的图层
    ref.putEnumerated(charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
    var layerDesc = executeActionGet(ref);
    
    // 读取标签颜色枚举值
    var colorEnum = layerDesc.getEnumerationValue(charIDToTypeID("Clr "));
    
    // 枚举值和颜色的映射关系
    var colorMap = {
        [charIDToTypeID("None")]: "无颜色",
        [charIDToTypeID("Rd  ")]: "红色",
        [charIDToTypeID("Orng")]: "橙色",
        [charIDToTypeID("Ylw ")]: "黄色",
        [charIDToTypeID("Grn ")]: "绿色",
        [charIDToTypeID("Bl  ")]: "蓝色",
        [charIDToTypeID("Vlt ")]: "紫色",
        [charIDToTypeID("Gry ")]: "灰色"
    };
    return colorMap[colorEnum] || "未知";
}

使用示例

// 初始读取保存无颜色状态
var originColor = getLayerLabelColor();

// 后续需要检测时调用
var currentColor = getLayerLabelColor();
if (originColor === "无颜色" && (currentColor === "红色" || currentColor === "橙色")) {
    // 符合从无颜色变更为红色/橙色的逻辑
    alert("图层标签颜色已变更为红色/橙色");
}

补充说明

  • 如果你需要读取非选中状态的指定图层,只需修改 ActionReference 的定位规则即可,比如通过图层ID定位:ref.putIdentifier(charIDToTypeID("Lyr "), 目标图层ID)
  • 所有标签颜色的枚举值映射是Photoshop固定的规则,覆盖了所有支持的标签颜色类型

内容的提问来源于stack exchange,提问作者Ghoul Fool

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:48:03