ios上不显示图片,安卓上却显示该图片,问题分析(webp格式图片)

忽然有一天,后台拿着iOS app让我看,在安卓上能显示的图片,在苹果手机上竟然加载不出来,加载失败。
之后 ,我就打印出图片的url,发现在safari浏览器上加载不出该图片,在谷歌浏览器上就能显示。

在谷歌上下载下来这张图片并保存到本地显示如下所示:


ios上不显示图片,安卓上却显示该图片,问题分析(webp格式图片)_第1张图片
[finder中查看]

双击之后:


ios上不显示图片,安卓上却显示该图片,问题分析(webp格式图片)_第2张图片
“它可能已损坏,或者可能使用了“预览”无法识别的文件格式。”

估计不是一张普通的图片,便去查找原因。这张图其实是webp格式的图片:

ios上不显示图片,安卓上却显示该图片,问题分析(webp格式图片)_第3张图片
webp图片介绍

一、支持webp图片显示的方案:在SDWebImage 中能看到了这段话:

ios上不显示图片,安卓上却显示该图片,问题分析(webp格式图片)_第4张图片
SDWebImage

pod 所需第三方:

pod 'SDWebImage'
pod 'SDWebImageWebPCoder' #webP格式的图片

pod install时候,会报错。报错误信息以及解决办法见第三部分。安装成功之后,继续向下操作⏬

pod install安装之后,查看SDWebImageWebPCoder官方使用说明, 是在sd_setImageWithURL:之前加上一段代码即可。

// Add coder
SDImageWebPCoder *webPCoder = [SDImageWebPCoder sharedCoder];
[[SDImageCodersManager sharedManager] addCoder:webPCoder];

// WebP image loading
UIImageView *imageView;
NSURL *webpURL;
[imageView sd_setImageWithURL:webpURL];

ok, 告一段落。。。。

二、 图片浏览器YBImageBrowser打不开webp格式的图片

我们app点击图片会有放大到原图浏览的功能,用的是YBImageBrowser,对于webp格式图片,直接点击是不会加载出来的,查看官方说明:

ios上不显示图片,安卓上却显示该图片,问题分析(webp格式图片)_第5张图片
YBImageBrowser说明

ios上不显示图片,安卓上却显示该图片,问题分析(webp格式图片)_第6张图片
解决办法

故:

pod 'YBImageBrowser'
pod 'YYImage/WebP' #WebP格式图片

三、加入pod 'SDWebImageWebPCoder', webP格式的图片之后,pod install会安装不成功,报错:

ios上不显示图片,安卓上却显示该图片,问题分析(webp格式图片)_第7张图片
企业微信截图_923c7ea5-6c98-4a34-8b50-419a6fb31257.png

libwebp的地址是谷歌的.....解决办法:

1、打开终端 执行pod repo
2、终端执行 find ~/.cocoapods/repos/master -iname libwebp
3、复制打印出的地址,放到“前往文件夹...”
4、找到对应版本,打开libwebp.podspec.json文件,把source - git中的url更换成https://github.com/webmproject/libwebp.git,然后保存。最后重新执行pod install

谢谢解决办法来源:https://cloud.tencent.com/developer/article/1337723

你可能感兴趣的:(ios上不显示图片,安卓上却显示该图片,问题分析(webp格式图片))