jpg或png图片居然在手机中无法显示!

博客讲述了作者发现自己的图片在iOS设备上无法显示,经过调查发现是由于图片实际为WebP格式,但文件后缀误标为JPEG。文章介绍了WebP格式的高效特性以及其在不同浏览器和操作系统中的兼容性问题,特别是iOS设备的不支持情况。通过查看文件的魔数确定了图片的真实格式,揭示了判断文件类型不能仅依赖文件后缀的教训。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有一天被告知,我的图片居然在别人的手机上无法显示?!我急忙打开手机,诶?居然是显示的。

又借了几个手机之后发现,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啊?

这就需要了解计算机如何检测文件的类型了,文件的后缀随时可修改,根据文件名的后缀来判断文件的类型就大错特错了,计算机是通过一个叫魔数的东西来区分的。

很多类型的文件,其起始的几个字节的内容是固定的(或是有意填充,或是本就如此)这几个字节的内容也被称为魔数,因为根据这几个字节的内容就可以确定文件类型。有了这些魔术数字,我们就可以很方便的区别不同的文件。

文件类型魔数
jpeg0xFF D8 FF
png0x89 50 4E 47 0D 0A 1A 0A
webp0x52 49 46 46

如果是用vscode 的小伙伴,可以安装一下hexdump插件,这样 右键文件show hexdump就可以查看文件的十六进制啦~

我们查看图片的十六进制,
在这里插入图片描述
虽然他的后缀是jpeg结尾,但他根据魔数来说,是实实在在的webp格式,这下终于找到无法显示的原因了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值