SDWebImage支持webp

SDWebImage本身就支持webp,但是webp在TC有个蛋疼的问题就是VPN,工程中经常执行pod update 耗时耗力,然后我就直接扔在本地了。

方法

  • 在终端直接配置翻墙直接执行pod update,然后直接拷贝到本地目录直接引入
  • 纯手工操作
    由于我的vpn出问题了么有执行pod update 成功,https://chromium.googlesource.com/webm/libwebp 执行到这儿一直超时。

  • 我直接去https://chromium.googlesource.com/webm/libwebp 地址直接下载工程。

  • 工程中有一个iosbuild.sh脚本,然后直接执行。但是发现执行完的framewrok中并没有这里写图片描述 这几个为红色的文件并没有,但SDWebImage中

/*
 * This file is part of the SDWebImage package.
 * (c) Olivier Poitrey <[email protected]>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

#ifdef SD_WEBP

#import "UIImage+WebP.h"
#import "webp/decode.h"
#import "webp/mux_types.h"
#import "webp/demux.h"
#import "NSImage+WebCache.h"

#import "objc/runtime.h"

// Callback for CGDataProviderRelease
static void FreeImageData(void *info, const void *data, size_t size) {
    free((void *)data);
}

显而易见,报错了,引入的文件没有,但是看一下工程结构。

这里写图片描述 工程中都有该文件,显然在执行iosbuild.sh没有打包进去,那我们做的就非常简单了。

  • 最后一步修改 iosbuild.sh脚本,125行加入别的几个类文件,执行./iosbuild.sh 生成的framework就可以用了。
    cp -a ${SRCDIR}/src/webp/{config,demux,format_constants,mux_types,mux,decode,encode,types}.h ${TARGETDIR}/Headers/
${LIPO} -create ${LIBLIST} -output ${TARGETDIR}/WebP

还有一种方法:
YYImage(本身也支持webp,直接使用也没有问题,由于我们之前使用的sd,就没有换了)也支持了https://github.com/ibireme/YYWebImage 直接copy YYWebImage/Vendor/WebP.framework 使用也没有问题。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章