家人们,不知道最近大家在微信群里有没有刷到过这么一张巨邪门的表情包 ——
咱们差评编辑部八十个人的大群,这两天直接被这张「荧光蛙」给沦陷了。。。
因为只要有人在群里甩出这么一张表情包,群里那帮用 iPhone 和 Mac 的同事们,就会看到表情包跟开了 LED 灯似的疯狂自发光,亮度高得离谱,感觉下一秒屏幕都能当手电筒使,有一种亮瞎眼睛的美:

但特别神奇的是,那些用安卓手机的同事,就只能看到一张再普通不过的表情包:

然后群里就出现了这么一幕。。。。

但在处理表情包时,可能是程序员漏了这茬,没对表情包的 ICC 配置文件动手脚,结果就让它钻了空子,iPhone 通过 ICC 配置文件,了解到这玩意得用 HDR 模式显示后,自然就触发了屏幕 HDR 效果。
为了验证这个猜想,世超先是把开头那张表情包下载到本地,然后查看了下它的配置文件,果不其然,这个表情包使用的配置文件是 Rec.ITU-R BT.2100PQ 标准,不是我们平时常见的 sRGB IEC61966-2.1。

其中 sRGB IEC61966-2.1 绝对可以称得上是最最最主流的版本,几乎所有电脑、手机、打印机出厂都会默认支持这个标准,这也意味着,不管你用啥设备看,只要按这个标准来,颜色基本大差不差。

而开头那张表情包使用的 Rec.ITU-R BT.2100PQ,根据国际电信联盟给出的技术文档显示,它刚好就是一种针对 HDR 高动态范围的标准,借助这标准,视频和图片就能在支持 HDR 的设备上显示 HDR 效果。

其实不止是微信,你把这这张图片发到 iPhone、Mac 上的飞书或者直接在系统文件管理里看,只要它的 ICC 配置文件没被改动,我们照样能看到 HDR 效果。

甚至把它传到 Apple Watch 上,都能激发 HDR,就离谱。。。

搞明白原理之后,咱们编辑部小伙伴也尝试着复现了下,试着自己做了几个 HDR 表情包。
主要就是把图片 ICC 配置文件统一改成 Rec.ITU-R BT.2100PQ,然后适当缩小图片尺寸到几十 KB,导出设置里勾选 ” 嵌入颜色配置文件 “,接着把图片添加到微信表情包,最后确实是在微信上复现了:

不过它这效果很不稳定,有些表情包只能在自己手机上看到 HDR 效果,发到群里别人看到的还是普通表情包。
我个人猜测啊,这其中应该还涉及到某些参数的调整,也可能跟微信对表情包的玄学压缩机制有关系,这会儿网上也有博主试着用 Python 写了个自动化程序,各位感兴趣的差友也可以自己动手试试。

OK,搞清楚微信为啥能显示 HDR 表情包后,我相信很多人都会好奇 ——
为啥只有 iPhone、Mac 这类苹果设备能把表情包的 HDR 效果给显示出来,安卓这边咋就跟个没事人似的?难道安卓手机都不支持 HDR?
其实不然,现在不少安卓旗舰机都支持 HDR10 甚至杜比视界,硬件条件其实并不差。

其中的问题可能出在 —— 安卓阵营各个厂商对 HDR 的支持标准和优化水平参差不齐。
换句话说,有的手机虽然硬件支持 HDR,但系统在显示图片时,不会主动读取 ICC 配置文件里的信息,导致 HDR 效果无法触发;还有的手机,则是只支持自家私有 HDR 标准,换成其他标准就不行了。
之前有人把 vivo 手机拍的 HDR 照片和实况照片,分享到 OPPO 或者小米手机上,发现照片到了这些手机上,自带的 HDR 效果和实况效果就会失效,就是因为各家支持的 HDR 和实况标准不同导致的。

包括快充也是一样,因为各家支持的快充协议不同,很多手机用的还是私有快充协议,所以用同个充电器给不同品牌手机充电,能实现的最大充电功率也有区别,对于这点,相信差友们早就见怪不怪了~
而苹果很早开始就在自家产品上标榜生产力,虽然很多网友吐槽,它这生产力只对设计师、程序员和视频博主等特定群体更友好。
但不可否认的是,从 Mac 到 iPad 再到 iPhone,苹果全系设备确实很早就支持上了各类主流标准,并且统一了色彩管理体系,自带的色彩管理引擎还能让不同尺寸、不同亮度的屏幕,都按同一套标准显示。

不过好在最近这两年,各家手机厂商都陆续开始在系统层面统一 HDR 标准和实况照片标准,我们跨品牌分享照片的时候,也能保留该有的效果了,未来它们在色彩管理体系和标准上看齐苹果也不是没可能。
希望到了那个时候,微信还没有修复这个蛮有意思的 「BUG」~

“掌”握科技鲜闻 (微信搜索techsina或扫描左侧二维码关注)
