iPhone用户被表情包闪瞎 这事得赖微信

家人们,不知道最近大家在微信群里有没有刷到过这么一张巨邪门的表情包 ——

iPhone用户被表情包闪瞎 这事得赖微信

咱们差评编辑部八十个人的大群,这两天直接被这张「荧光蛙」给沦陷了。。。

因为只要有人在群里甩出这么一张表情包,群里那帮用 iPhone 和 Mac 的同事们,就会看到表情包跟开了 LED 灯似的疯狂自发光,亮度高得离谱,感觉下一秒屏幕都能当手电筒使,有一种亮瞎眼睛的美:

iPhone用户被表情包闪瞎 这事得赖微信

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

iPhone用户被表情包闪瞎 这事得赖微信

然后群里就出现了这么一幕。。。( PS:同事之间没有恶意,纯属编辑部日常聊天画风~

iPhone用户被表情包闪瞎 这事得赖微信

 说实话,一开始世超也挺纳闷,好好的表情包咋就能自己发光了,难不成微信偷偷给苹果埋了个彩蛋,区别对待安卓?

直到看到同事说,这玩意儿在 iPhone 上会触发 HDR 效果,才突然反应过来 —— 合着微信里还藏着之前一直都没被发现的 HDR 开关 「BUG」。

众所周知,现在很多手机基本都支持上了 HDR,你在各大平台比如微博,点开一个 HDR 视频,这时候手机屏幕就会自动把视频里高光部分比如灯牌、天空进行一个提亮,这么一来画面看上去就会更加鲜活:

iPhone用户被表情包闪瞎 这事得赖微信

包括照片也是,如果你拍的是 HDR 格式的照片,那么在相册里回看的时候,手机屏幕也会自动提亮高光部分。

然而尽管现在很多平台都支持上了 HDR,但微信一直都是 HDR 绝缘体。

平时大家发 HDR 照片和视频到微信,就算发送之前勾选了「原图」,对方收到的也都是被转换成普通 SDR 格式的版本,HDR 效果全给整没了,是不是很小而美。。。( bushi

iPhone用户被表情包闪瞎 这事得赖微信

至于为啥这次的表情包就能突破限制,在 iPhone 和 Mac 上玩出 HDR 表情包花活,经过咱们编辑部以及那些懂技术的外援小伙伴们讨论之后,我们猜测,其实问题可能就出在微信对表情包的处理上。

 很多小伙伴可能不知道,咱们平时拍的照片、存的表情包,并不单纯只是一张图片,其实它们都偷偷携带着这么一份说明书 —— ICC 配置文件。

里面写着「这张图的白色该多亮」「黑色该多暗」「红色是番茄红还是草莓红」等等之类的关键信息,有了这份说明书,不同设备才能看懂这张图片,然后在当前设备上正确还原出这张图片本来的样子。

adobe 官网对于 ICC 配置文件的解释:

iPhone用户被表情包闪瞎 这事得赖微信

可能是为了照顾到个人隐私,也可能是微信觉得根本没必要保留这些信息,它在处理图片时,会自动剥离或者忽略图片的 ICC 配置文件,这就使得咱们平时通过微信发送的图片,丢失了很多关键信息。

 就像你微信发一张手机拍的照片到对面,对面收到照片并且下载到相册后,根本没法看到这张照片是在哪拍的,之前咱们还详细聊过这事儿(传送门)。

iPhone用户被表情包闪瞎 这事得赖微信

但在处理表情包时,可能是程序员漏了这茬,没对表情包的 ICC 配置文件动手脚,结果就让它钻了空子,iPhone 通过 ICC 配置文件,了解到这玩意得用 HDR 模式显示后,自然就触发了屏幕 HDR 效果。

为了验证这个猜想,世超先是把开头那张表情包下载到本地,然后查看了下它的配置文件,果不其然,这个表情包使用的配置文件是 Rec.ITU-R BT.2100PQ 标准,不是我们平时常见的 sRGB IEC61966-2.1。

iPhone用户被表情包闪瞎 这事得赖微信

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

iPhone用户被表情包闪瞎 这事得赖微信

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

iPhone用户被表情包闪瞎 这事得赖微信

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

iPhone用户被表情包闪瞎 这事得赖微信

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

iPhone用户被表情包闪瞎 这事得赖微信

搞明白原理之后,咱们编辑部小伙伴也尝试着复现了下,试着自己做了几个 HDR 表情包。

主要就是把图片 ICC 配置文件统一改成 Rec.ITU-R BT.2100PQ,然后适当缩小图片尺寸到几十 KB,导出设置里勾选 " 嵌入颜色配置文件 ",接着把图片添加到微信表情包,最后确实是在微信上复现了:

iPhone用户被表情包闪瞎 这事得赖微信

 不过它这效果很不稳定,有些表情包只能在自己手机上看到 HDR 效果,发到群里别人看到的还是普通表情包。

我个人猜测啊,这其中应该还涉及到某些参数的调整,也可能跟微信对表情包的玄学压缩机制有关系,这会儿网上也有博主试着用 Python 写了个自动化程序,各位感兴趣的差友也可以自己动手试试。

iPhone用户被表情包闪瞎 这事得赖微信

 OK,搞清楚微信为啥能显示 HDR 表情包后,我相信很多人都会好奇 ——

为啥只有 iPhone、Mac 这类苹果设备能把表情包的 HDR 效果给显示出来,安卓这边咋就跟个没事人似的?难道安卓手机都不支持 HDR?

其实不然,现在不少安卓旗舰机都支持 HDR10 甚至杜比视界,硬件条件其实并不差。

iPhone用户被表情包闪瞎 这事得赖微信

 其中的问题可能出在 —— 安卓阵营各个厂商对 HDR 的支持标准和优化水平参差不齐。

换句话说,有的手机虽然硬件支持 HDR,但系统在显示图片时,不会主动读取 ICC 配置文件里的信息,导致 HDR 效果无法触发;还有的手机,则是只支持自家私有 HDR 标准,换成其他标准就不行了。

之前有人把 vivo 手机拍的 HDR 照片和实况照片,分享到 OPPO 或者小米手机上,发现照片到了这些手机上,自带的 HDR 效果和实况效果就会失效,就是因为各家支持的 HDR 和实况标准不同导致的。

iPhone用户被表情包闪瞎 这事得赖微信

包括快充也是一样,因为各家支持的快充协议不同,很多手机用的还是私有快充协议,所以用同个充电器给不同品牌手机充电,能实现的最大充电功率也有区别,对于这点,相信差友们早就见怪不怪了~

而苹果很早开始就在自家产品上标榜生产力,虽然很多网友吐槽,它这生产力只对设计师、程序员和视频博主等特定群体更友好。

但不可否认的是,从 Mac 到 iPad 再到 iPhone,苹果全系设备确实很早就支持上了各类主流标准,并且统一了色彩管理体系,自带的色彩管理引擎还能让不同尺寸、不同亮度的屏幕,都按同一套标准显示。

iPhone用户被表情包闪瞎 这事得赖微信

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

 希望到了那个时候,微信还没有修复这个蛮有意思的 「BUG」~