主题
macOS 色彩描述文件与显示预设
macOS 上有两件容易被混为一谈的事:色彩描述文件(ICC Profile)放在哪里、谁优先,以及**「显示预设」和「颜色描述文件」为什么不是一回事**。本页把两者拆开讲,并给出可自行复核的查验方法。
本页按三段式走:先看描述文件与显示预设的分工(概念)→ 再按自查方法核对(会用)→ 最后弄清"为什么两者不是一回事""为什么滤镜不能顶替描述文件"(原理)。
⚠️ 本页给出的目录与文件条目数为较新 macOS 的典型情况,会随系统版本增减;请以你机器上的实际结果为准 —— 文中给出了可自行查验的命令。
一、三级存放位置与优先级
ColorSync 按 用户 → 本地 → 系统 的顺序查找描述文件,同名时靠前者生效:
| 层级 | 路径 | 说明 |
|---|---|---|
| 用户级 | ~/Library/ColorSync/Profiles/ | 优先级最高;装过自定义描述文件才会存在 |
| 本地级 | /Library/ColorSync/Profiles/ | 全机用户可用,第三方软件常写这里 |
| 系统级 | /System/Library/ColorSync/Profiles/ | 随系统提供,只读 |
两点补充:
- 用户级目录不存在是正常的。没有手动安装过描述文件时,macOS 不会创建它;它的模板放在
/System/Library/Templates/Data/Library/ColorSync/Profiles/。 - 还有一处按显示器实例存放的位置:
/Library/ColorSync/Profiles/Displays/,命名形如<显示器名>-<UUID>.icc。每接入一台新显示器生成一个,因此这一层的条数反映的是这台机器见过多少台显示器,与"系统自带多少"无关。
二、系统级里那十几个是什么
系统级目录装的是 Apple 挑选的一组工作色彩空间,并非"给某台显示器用的"。条目数随 macOS 版本略有增减,通常在这个量级(以较新的 macOS 为例,约 14 个):
| 分组 | 条目 |
|---|---|
| 常用 RGB | sRGB、Display P3、Adobe RGB (1998)、DCI-P3 |
| 视频标准 | BT.709、BT.2020 |
| 宽色域 / 影业 | ROMM RGB、ACEScg Linear |
| 通用与连接空间 | Generic RGB、Generic Gray ×2、Generic CMYK、Generic Lab、Generic XYZ |
早期 macOS 曾附带更多遗留标准(Apple RGB、SMPTE-C、HDTV、NTSC、PAL/SECAM 等),后续版本陆续裁撤。因此现代 macOS 都在这个量级——数量偏少不是机器异常。
三、别把「滤镜」认成显示描述文件
本地级目录里还有一些名字像色彩空间的文件(黑白、蓝色调、灰度、棕褐、亮度增减、Web 安全色等)。这类文件通常有 6 个抽象转换 + 1 个命名色(随版本可能不同)。它们与显示器无关,是软打样用的滤镜。
区分方法是读 ICC 头部的设备类别字段(第 12–15 字节):
| 类别 | 含义 | 是否显示描述文件 |
|---|---|---|
mntr | 显示设备 | 是 |
abst | 抽象转换(滤镜) | 否 |
nmcl | 命名色 | 否 |
spac | 色彩空间(Lab/XYZ 等) | 否 |
prtr | 打印机 | 否 |
scnr | 输入设备 | 否 |
一条命令即可逐条判读:
bash
for f in /System/Library/ColorSync/Profiles/*.icc \
/Library/ColorSync/Profiles/*.icc \
/Library/ColorSync/Profiles/Displays/*.icc; do
printf "%-6s %-6s %s\n" \
"$(xxd -s 12 -l 4 -p "$f" | xxd -r -p)" \
"$(xxd -s 16 -l 4 -p "$f" | xxd -r -p)" \
"${f#/}"
done第二列是数据色彩空间(RGB / GRAY / CMYK / Lab / XYZ),配合类别列可快速判读。
四、「显示预设」与「颜色描述文件」的区别
在「系统设置 → 显示器」中这两项外观相近,但来源完全不同:
| 显示预设 / Presets | 颜色描述文件 / Color Profile | |
|---|---|---|
| 来源 | 面板声明的模式 | 磁盘上的 ICC 文件 |
| 本质 | 一组 EOTF、色域与亮度上限的组合 | 色彩特性描述 |
| 数量取决于 | 面板能力 | 装了哪些描述文件 |
| 是否随机器变化 | 是,随显示器走 | 否,随文件走 |
预设不是磁盘上的文件。 它由显示器(面板 + 背光 + 驱动管线)声明,系统据此列出可切换的模式。是否出现「预设」这一行,取决于面板有没有声明多套模式:只有支持模式切换的面板才会给出较长列表,普通面板只提供一组出厂特性,系统也就没有更多可列。
Apple 机型的典型对照:
| 非 XDR 内置屏(如 MacBook Air) | XDR 面板(如 MacBook Pro 14/16) | |
|---|---|---|
| 预设数 | 1 组出厂特性 | 11 套可切模式 |
| 界面表现 | 仅「颜色描述文件」一项 | 多出「预设」一行,含 11 项 |
XDR 面板的预设集通常包含(随系统版本可能不同):
- Apple XDR Display (P3-1600 nits)
- Apple Display (P3-500 nits)
- HDR Video (P3-ST 2084)
- HDTV Video (BT.709-BT.1886)
- NTSC Video (BT.601 SMPTE-C)
- PAL & SECAM Video (BT.601 EBU)
- Digital Cinema (P3-DCI)
- Digital Cinema (P3-D65)
- Design & Print (P3-D50)
- Photography (P3-D65)
- Internet & Web (sRGB)
其中 P3-1600 nits 与 HDR Video (P3-ST 2084) 依赖高亮度背光和 EOTF 切换能力,非 XDR 面板不具备。这也解释了为什么低亮度面板的那一栏短得多——不是系统阉割,而是面板没有这些模式可声明。
五、出厂描述文件不在 ColorSync 目录
显示器的出厂标定数据存放在:
/System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-*/该目录下通常有数十个厂商目录、数百个文件,但没有任何 .icc。文件构成:
| 文件 | 作用 |
|---|---|
DisplayProductID-* | 覆盖描述(XML),含逐台测得的面板特性 |
*.tiff | EDID 缩略图 |
*.mtdd | 时序与显示数据 |
DisplayProductID-* 里与色彩相关的字段:
| 字段 | 含义 |
|---|---|
DisplayGammaTable | 逐通道 gamma 查找表(如 3×256 点、1536 字节) |
DisplayRed/Green/BluePointX/Y | 面板基色坐标 |
DisplayWhitePointX/Y | 白点坐标 |
DisplayBacklight | 背光亮度 |
也就是说,内置屏那一份出厂描述文件是用逐台测得的数据生成的,而不是从某个通用集合里挑一个——两台同型号机器的出厂描述文件并不完全相同。
六、自查方法
- 看有哪些描述文件:
ls -1遍历第一节中的三级目录,再看Displays/子目录。 - 看类别:用第三节的命令读出
mntr/abst等字段,区分显示描述文件与滤镜。 - 看当前生效的是哪个:系统设置 → 显示器 → 颜色描述文件。注意 Apple 内置屏的默认值不一定是 sRGB,宽色域面板常见默认为 Display P3。
七、原理:显示预设不等于描述文件、出厂文件与环境光那层
(一)为什么"显示预设"与"颜色描述文件"不是一回事
两者作用在不同层面:
颜色描述文件(ICC):描述"这台设备把数值对应成什么颜色"
→ 用于**换算**(把内容空间转换到设备空间)
显示预设:一组设备侧参数与管道状态(白点、Gamma、亮度、
是否启用 HDR、系统是否接管颜色转换等)
→ 用于**设定工作状态**
→ 换个比喻:描述文件像"尺子的刻度说明",预设像"尺子被摆在哪、量什么"
→ 所以会出现两种常见误解:
① 只换描述文件,却以为改了屏幕实际表现(预设没变,屏没变)
② 只切预设,却期待跨软件颜色一致(描述文件与内容空间没对齐)
→ 判断含义:**报"这台颜色准"必须同时说明预设与描述文件**,缺一不可(二)为什么出厂描述文件不放在系统颜色目录里
颜色目录(如 ColorSync 的目录)主要承载**系统与用户安装**的描述文件
→ 而厂商随显示器提供的描述文件,常来自另一个来源:
随驱动/厂商软件安装,或由显示器在连接时被系统识别后附带
→ 两条路径的差异会带来实际后果:
① 卸载厂商软件可能让"原本在用的那份"消失
② 同一型号不同批次附带的描述文件可能不同
→ 因此自查时不要只看"目录里有没有文件",还要确认**当前实际生效的是哪一份**
(见本页第六节的自查方法)(三)为什么"滤镜"不能顶替描述文件
滤镜(显示滤镜/辅助功能里的色彩滤镜等)是对**输出内容**做的改写
→ 它不知道"这台设备特性是什么",也无法完成跨空间的正确换算
→ 它的结果是"所有内容都被改成另一种样子",而非"把颜色映射正确"
→ 描述文件是"描述设备",滤镜是"改写画面":
前者让不同的设备能对上,后者只是把画面整体挪一挪
→ 所以"用了滤镜颜色看着舒服了"不能作为"色彩管理做好了"的依据;
同时要注意:**做测量或校准前必须确认没有启用任何滤镜**,
否则测到的是"滤镜后"的屏📋 判据接口:本页属色彩与视觉类 —— 依此页结论做判定时,除通用条件外还必须附带 判据字段集 · 色彩与视觉类 所列字段(共 7 项):这个"颜色对不上"是偏差、是范围,还是观察条件? 缺任一项,结论不可复核,只能作降级表述。
关键概念速查
| 术语 | 含义 |
|---|---|
| ColorSync | macOS 的色彩管理系统 |
| ICC Profile | 色彩描述文件 |
| Device Class | ICC 头部设备类别字段(mntr 等) |
| Displays 目录 | 按显示器实例存放的描述文件 |
| Display Presets | 面板声明的显示模式 |
| EDID Override | 显示器覆盖描述 |
相关文档
数据来源:本页数据整理自公开标准规范与厂商公开资料,仅供参考;具体数值与技术细节请以官方规范原文与厂商官方资料为准。