让你的 logo 在 HDR 屏幕上格外明亮
文章摘要
soverybright.com 是 Chris Bennett 做的一个单页浏览器工具,功能一句话说完:上传一张 logo,选择哪些颜色应该发光,下载一张 HDR JPEG。在 HDR 屏幕上,被选中的部分最亮可以达到纯白 #FFFFFF 的 7.5 倍(+2.9 档曝光,约 1,500 nits);在其他任何地方,它就是一张再普通不过的 JPEG。整个处理在浏览器内存里完成,不上传、不存储、不需要注册。
作者在 HN 的自述里讲了缘起:他注意到 LinkedIn 上某些公司的 logo 明显比周围一切都更白更亮,查下去发现做法是给已有的 JPEG 加一层 gain map(增益图),只在较新的 MacBook Pro 这类 HDR 屏幕上可见。他发现 LinkedIn 是唯一一个不会把这层信息剥掉的社交网络(当然你自己的站点上随便用),于是用 Claude Code 把它做成了这个小工具。
技术原理分两条路。给 Web 用的是 ISO 21496-1 gain map:JPEG 本身还是普通 JPEG,底层像素完全没动,只是额外附上一张很小的灰度图,告诉支持 HDR 的软件「每个像素最多可以亮到什么程度」。给 LinkedIn 用的则是把像素直接写成 BT.2100 PQ 并配上对应的 ICC profile——LinkedIn 会保留这套信息。页面上有一组对照演示:两个完全相同的 #FFFFFF 方块,其中一个带 gain map,在 HDR 屏幕上肉眼可见地一个是「屏幕正常能达到的最白」,另一个是「+2.9 档,最高 7.5 倍」。还有三个可拖动对比滑块的示例:黑底白字的字标(whites 自动选中)、白色圆环加一个品牌蓝的 orbit mark(白色和蓝色一起推到同一峰值)、深青底奶油色字的贴纸徽章(不是纯白,所以按颜色挑选)。
什么最适合发光:深色背景上浅色、接近白色的元素。作者给的实测甜点是 +2.9 档 / 约 1,500 nits。深色本身没法真正「发光」——强推的结果读起来像被冲淡的霓虹。
页面还专门有一节列了 诚实的局限:HDR 只在 HDR 显示器上、且在尊重 gain map 或 PQ profile 的软件里才会呈现(Chrome、Safari 26、Apple 照片、LinkedIn 的 App)。绝大多数其他平台会剥掉或归一化这些信息——文件在那里看起来仍然完全正常。
比较有创意的是最后一节:这招也能用在文字上。作者指出 CSS 目前没有办法写出比 #FFFFFF 更亮的颜色(CSS Color HDR 里的 HDR 色彩空间还是草案),也没有任何 filter 或混合模式能把 CSS 颜色推过白点,因为整个页面是在 SDR 里合成的——只有 HDR 内容才有那段 headroom。但你可以用 HDR 图片去「画」真实文字:background-clip: text 把字形变成一扇窗,透出下面那张 gain map JPEG。页面顶部的大标题就是这么做的——选中它,它是真的文字。所用的色板是一张 64×64 的白色 JPEG,带一张均匀的 gain map(7.5 倍、+2.9 档、约 1,500 nits),只有 1.3 KB,浏览器把它缩放到字形之下。
作者给出的实现方式和几条使用纪律很值得抄走:
/* 只在 HDR 屏幕上走图片这条路,其他人保留真实颜色 */
@media (dynamic-range: high) {
@supports (background-clip: text) or (-webkit-background-clip: text) {
.hdr-text {
background: url("white-7.5x.jpg") center / cover;
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
}
}
- 用
dynamic-range: high做门控,这样 SDR 访客、Firefox 和打印保留真实颜色,不多一次网络请求,也避开了唯一一个坑:background-clip只在元素的盒子内绘制墨迹,一行溢出的文字会被裁掉。 - 只用于标题和点缀。作者原话:一整段 1,500 nits 的正文是有敌意的。另外记得给
::selection指定颜色,否则选中态可能不可见。 - 兜底行为是安全的:在不支持的地方,色板的基础图片透出来,文字就是普通的白色,什么都不会坏。
HN 评论精华
这是本期最一边倒的一场讨论。85 条评论里,绝大多数是在恳求作者和所有人不要用这个东西,语气从戏谑到真实的生理不适都有。有意思的是,作者 telecuda 全程在场,态度相当坦然,还顺手给出了关掉它的方法。
- froh42 定了全场的调子,也是最高赞:「哦操。我们现在有了 90 年代/00 年代 CD 响度战争的 HDR 版本吗?开到最大?更响!更亮!搞什么。」leni536 接了一句「它能开到 11」,作者本人自嘲式地回了《This Is Spinal Tap》的台词:「愚蠢和……呃……聪明之间,只有一线之隔。」madaxe_again 把它推到极致:「我们新的品牌认知策略是用大功率激光直接射进潜在客户的眼睛,把 logo 烧在他们视网膜中央凹上。这样我们就能跳过认知、兴趣和欲望,直接让客户进入行动阶段。」
- gerdesj 给了另一个流传很广的定性:「
<blink>标签的精神继承者。」shaky-carrousel 补刀「不如做个在 HDR 和非 HDR 之间切换的 blink 标签」,madaxe_again 再补「不用<marquee>包起来就没意思了」。hyperhello:「我打赌作者正在懊悔没有加一个『闪烁的高亮度』class。」 - 技术上最实质的争议是它是否会影响整块屏幕。dawnerd 的说法是:「它糟糕是因为它会把整块显示器调暗。你在假设你的 app 比屏幕上其他任何东西都重要。而且系统要过一会儿才能退回 SDR 状态,我遇到过好几次 Safari 卡在 HDR 模式里,直到强制退出才恢复。」embedding-shape(Arch + Chrome)反驳说他的 HDR 屏上只有那个元素变亮,其他什么都没变。masklinn 给出了裁决性的解释:在 macOS 上,一旦有 HDR 内容出现,系统会重新映射亮度范围,页面其余内容是字面意义上、物理意义上地变暗了。dawnerd 用 iPhone 14 Pro 实测确认「除了那块亮的,其他全暗了,非常烦人」。Grombobulous 提出了不同意见:HDR 的原理不是调暗整块屏幕,尤其在 OLED 手机屏上;如果你把屏幕亮度开到最大,HDR 效果就基本消失,因为你已经让屏幕全域最亮了;把亮度放到 50%,HDR 效果就可见。theturtletalks 报告了一个野外案例:他在 Uber Eats 上看到一家餐厅用了 HDR 增强的图片,「整块屏幕感觉暗了,但我以为是我的错觉」。
- 由此引出这算不算越过了用户的显示偏好。anigbrowl 引用页面自己的措辞后说:「我事实上不希望网站绕过我的显示偏好来加强它们在屏幕上的存在感。」Grombobulous 的立场是「如果你拥有一块 HDR 屏幕,那你的显示偏好就是能显示 HDR」,并推荐用「设置 > 辅助功能 > 显示与文字大小 > 降低白点值」。illiac786 的回答被广泛认同:「我买 HDR 屏幕是为了在我想要的时间和地点显示 HDR 内容,它在摄影上有很大价值。但我当然不想看 HDR 广告。」hombre_fatal 的反驳更技术:(1)拥有 HDR 屏幕不等于你希望 Instagram feed 里的随机视频在你已经把亮度调到最低的暗房里全亮度播放;(2)降低白点只是全局压暗,并不能关掉大家抱怨的那个东西。solarkraft 指出低电量模式确实会禁用 HDR,但 iOS 没有这个开关,而且低电量模式还会关掉别的东西;「你当然可以用你的创作自由,只是你得接受人们对你未经同意展示他们强烈不想看的东西的反应」。Retr0id 给了这场讨论里最有建设性的类比与提案:「我们曾经给网站自动播放音频的能力,它们证明了自己不配拥有这个特权,于是我们把它收回了。我们可以对 HDR 图片做同样的事——把它挡在『点击查看』或者『允许此站点显示 HDR 内容』后面(大概已经有人能用浏览器扩展实现了)。」他还补了一句:「自动播放音频以前也没问题,某些网站花了一段时间才学会自己能有多烦人——给 HDR 一点时间。」IshKebab 提了个更简洁的方案:只在全屏模式下才允许。
- 实用对策在评论区被整理得相当完整。作者 telecuda 自己给了退出方式:
chrome://flags/#force-color-profile设成 sRGB。laptoprabbit 贴了 uBlock Origin(Lite)自定义过滤规则,用dynamic-range-limit: standard !important强制某个域名回到 SDR,并直接把soverybright.com和linkedin.com都列上了。mikeshi42 和 layer8 提到 iOS 的「降低白点值」能覆盖这类效果;layer8 还给受 App 图标发光困扰的人(fjlunky 提到 Sky Guide 的图标里星星会发光)出了个主意:用主屏幕快捷方式启动 App。kccqzy 分享了他和 gain map 的相遇:他坚持让 iPhone 拍 JPEG 而不是 HEIF,结果发现天空这类过曝区域会比纯白更亮;虽然没法阻止相机写入 gain map,但可以在照片 App 里关掉「查看完整 HDR」,另外 Metapho 这个 App 可以单独查看某张图的 gain map。suprjami 的提议大概代表了多数人的愿望:「现在谁来 vibe-code 一个检测并移除这玩意的浏览器扩展。对任何这么干的人的整个域名下一条 uBlock Origin 规则也行。」 - 兼容性反馈也不少。perryizgr8(S26 Ultra / Chrome)说 SDR 和 HDR 版本看不出区别;Jaxan 和 mattlondon 指出关键在屏幕亮度——开到 100% 就没有 headroom,效果几乎看不出,降到 50% 才明显,「但谁会一辈子半睁着眼过日子?」作者确认了这个诊断:Android 15/16 上「HDR 没反应」的最常见原因就是 HDR 亮度滑块设得低,三星在显示设置里还有 Super HDR / 额外亮度 / Vision Booster 等开关。AaronAPU 给了最尖锐的一条用户反馈:「我以常年把亮度调到最低闻名。演示页的效果非常明显。实际上,它无视了我的系统级偏好,这让我非常讨厌它。」uhoh-itsmaciek 报告 Firefox 里页面说他的浏览器和显示器都不支持 HDR,Chrome 里正常,nvr219 的评论是:「我也注意到了,而我要说,很好,请不要修。」
- 作者的辩护只有一条,但态度端正:「我是说,负责任地用。当然人们不会,这是互联网嘛,但一个熟练的设计师可以用它来强调一个词或一处点缀,把你的视线吸引过去。在密集的界面里让焦点落到某处是很难的(小 tooltip 或大按钮都不是最好的答案)。这只是工具箱里的又一件工具。」tjoff 的回应大概是最公允的批评:「就算出于最好的意图,你说的这件事仍然很烦人。好,你拿到了我的注意力,我现在知道你想让我知道的事了。你打算烦我到地老天荒吗?」
- 最后是一整片简短的绝望:「Please don’t」(wlesieutre)、「This is why we can’t have nice things」(pentaphobe、ris 各说了一遍)、「谢谢,我讨厌它。这让我觉得我不想用支持 HDR 的浏览器」(conartist6,随后自问自答「这就是重点,对吧?」)、「你为什么想让所有人都恨你?」(solarkraft)。bigstrat2003 的总结最实际:「这似乎又是一个不开 HDR 的理由。即便被负责任地使用它也有点烦,而现在还会有人不负责任地用。」alpaca9 提供了唯一的乐观视角:「往好处想,如果它开始被真正滥用,也许 LinkedIn 这类平台就会开始剥掉它了。」dathinak 猜浏览器可能也会跟进,比如加上「如果图片很小 / 被部分遮挡 / 大部分透明,就不要用 HDR」这类启发式规则。也有几条来自野外的目击报告:jtbayly 昨天在 Gas Buddy 里撞上一条超亮的 HDR 广告,daigoba66 说 LinkedIn 上这类 logo「在夜里像刺眼的车前灯」,DauntingPear7 说他看到了第一批 HDR 手游横幅广告,「太可怕了,老实说应该被立法禁止」。