iPhone 用户被表情包闪瞎,这事似乎得怪微信。微信作为人们日常交流的重要工具,其丰富的表情包库深受喜爱。然而,某些表情包的设计可能在 iPhone 设备上显示异常,亮度过高或闪烁过快,这让 iPhone 用户的眼睛受到了不小的冲击。或许是微信在开发和适配过程中,对不同设备的特性考虑不够周全,导致了这一现象的发生。不管怎样,这都给 iPhone 用户带来了困扰,希望微信能重视并加以改进,让大家在交流中能更加舒适和愉悦。
家人们,不知道最近大家在微信群里有没有刷到过这么一张巨邪门的表情包:
咱们差评编辑部八十个人的大群,这两天直接被这张“荧光蛙」给沦陷了。
因为只要有人在群里甩出这么一张表情包,群里那帮用iPhone和Mac的同事们,就会看到表情包跟开了LED灯似地疯狂自发光,亮度高得离谱,感觉下一秒屏幕都能当手电筒使,有一种亮瞎眼睛的美:
但特别神奇的是,那些用安卓手机的同事,就只能看到一张再普通不过的表情包:
说实话,一开始世超也挺纳闷,好好的表情包咋就能自己发光了,难不成微信偷偷给苹果埋了个彩蛋,区别对待安卓?
直到看到同事说,这玩意儿在iPhone上会触发HDR效果,才突然反应过来——合着微信里还藏着之前一直都没被发现的HDR开关(BUG)。
众所周知,现在很多手机基本都支持上了HDR,你在各大平台比如微博,点开一个HDR视频,这时候手机屏幕就会自动把视频里高光部分比如灯牌、天空进行一个提亮,这么一来画面看上去就会更加鲜活。
包括照片也是,如果你拍的是HDR格式的照片,那么在相册里回看的时候,手机屏幕也会自动提亮高光部分:
然而尽管现在很多平台都支持上了HDR,但微信一直都是HDR绝缘体。
平时大家发HDR照片和视频到微信,就算发送之前勾选了“原图」,对方收到的也都是被转换成普通SDR格式的版本,HDR效果全给整没了,是不是很小而美?(bushi)
至于为啥这次的表情包就能突破限制,在iPhone和Mac上玩出HDR表情包花活,经过咱们编辑部以及那些懂技术的外援小伙伴们讨论之后,我们猜测,其实问题可能就出在微信对表情包的处理上。
很多小伙伴可能不知道,咱们平时拍的照片、存的表情包,并不单纯只是一张图片,其实它们都偷偷携带着这么一份说明书——ICC配置文件。
里面写着“这张图的白色该多亮」“黑色该多暗」“红色是番茄红还是草莓红」等等之类的关键信息,有了这份说明书,不同设备才能看懂这张图片,然后在当前设备上正确还原出这张图片本来的样子。
adobe官网对于ICC配置文件的解释:
可能是为了照顾到个人隐私,也可能是微信觉得根本没必要保留这些信息,它在处理图片时,会自动剥离或者忽略图片的ICC配置文件,这就使得咱们平时通过微信发送的图片,丢失了很多关键信息。
就像你微信发一张手机拍的照片到对面,对面收到照片并且下载到相册后,根本没法看到这张照片是在哪拍的。
但在处理表情包时,可能是程序员漏了这茬,没对表情包的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」。
图片、资料来源:
微博。@阿尼亚是安妮亞
差评编辑部同事们的手机
https://www.itu.int/rec/r-rec-bt.2100
https://experieneleague.adobe.com/
本文来自微信公众号:差评X.PIN (ID:chaping321),作者:世超,撰文:胖虎,编辑:米罗、面线