有一天被告知,我的图片居然在别人的手机上无法显示?!我急忙打开手机,诶?居然是显示的。
又借了几个手机之后发现,ios的手机显示不出,而安卓的手机显示的出!
webp这种格式的主要优势在于高效率。他们发现,“在质量相同的情况下,WebP格式图像的体积要比JPEG格式图像小40%。谷歌浏览器已经支持webp格式,Opera在版本号Opera11.10后也增加了支持,然而火狐和ie暂时还不支持webp格式,可以采用flash插件来显示webp,当然这样会耗费一些性能。
苹果在macOS Sierra及iOS 10的早期beta版本中加入了WebP支持。而在2016年9月7日发布的iOS 10和macOS Sierra GM种子版本中却移除了WebP的支持。
难道这是webp格式的?但是文件后缀明明是jpg啊?
这就需要了解计算机如何检测文件的类型了,文件的后缀随时可修改,根据文件名的后缀来判断文件的类型就大错特错了,计算机是通过一个叫魔数的东西来区分的。
很多类型的文件,其起始的几个字节的内容是固定的(或是有意填充,或是本就如此)这几个字节的内容也被称为魔数,因为根据这几个字节的内容就可以确定文件类型。有了这些魔术数字,我们就可以很方便的区别不同的文件。
文件类型 | 魔数 |
---|---|
jpeg | 0xFF D8 FF |
png | 0x89 50 4E 47 0D 0A 1A 0A |
webp | 0x52 49 46 46 |
如果是用vscode 的小伙伴,可以安装一下hexdump插件,这样 右键文件show hexdump就可以查看文件的十六进制啦~
我们查看图片的十六进制,
虽然他的后缀是jpeg结尾,但他根据魔数来说,是实实在在的webp格式,这下终于找到无法显示的原因了!