关于SDWebImage加载webp格式图片异常问题

 我来答
华源网络
2022-06-18 · TA获得超过5603个赞
知道小有建树答主
回答量:2486
采纳率:100%
帮助的人:149万
展开全部

很久之前写的了,最近都统一发了。参考资料,解决问题,总结一下,作为学习

webp 格式图片加载失败

后端调整?。。。。

设置库加载图片的请求头

所以,相应的配置一下即可

didFinishLaunchingWithOptions中:

关于这种方式设置请求头,解释一下:

是不是设置请求头,服务端知道内容生成格式了?生成image/webp格式

SDWebImage支持webp的,可以集成该库:pod 'SDWebImage/WebP',但是问题在于ios11.2之后webp格式的data无法解析为image呀,所以,就需要解决webp的data到image的解析问题

pod依赖库,个人习惯性的search一下,了解最新版本,homepage,source等信息。

pod search SDWebImage/WebP,发现没有搜索到,SDWebImage下没有webp的subspecs,但是pod install时候会发现,installing libwebp。所以,pod search libwebp 能搜索到,也能看到相关homepage,source等,发现libwebp是谷歌上的资源。所以,可能无法访问,会依赖失败

试一下,就算翻墙,可能也会访问错误的:
fatal: unable to access 'chromium.googlesource.com/webm/libweb…': Failed to connect to chromium.googlesource.com port 443: Operation timed out

所以,需要配置host, host列表 ,将host列表中的配置全部copy到host文件中,有点多,我也惊到了

打开webp库的libwebp.podsepc.json文件

看到source是 https://chromium.googlesource.com/webm/libwebp ,不通过一些手段是访问不到的

将source改为 https://github.com/webmproject/libwebp.git 再pod install即可。(能看到,libwebp.git是mirrored from 哪个的,就是上面那个)

注意: 修改的是libwebp的source,所以,需要pod 'libwebp'来依赖,如果修改的是搜索出来的最高版本的source,默认安装的就是这个,如果修改的是较低版本的source,那么依赖时候,最好指定版本

SDWebImage其实是支持webp格式的图片的,所以,11.2系统之前,集成过libwebp后,就可以直接正常加载webp格式的图片了。11.2之后的,webp图片的data无法解析得到image。

这一点,YYWebImage,YYImage支持WebP、APNG、GIF格式动画图像的播放/编码/解码

所以,可以将跟SDWebImage跟YYWebImage和YYImage结合一下

方法是重写SDWebImage的方法,,方法体处理是YYImage的解析处理

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式