WebP格式,谷歌google)开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器宽带资源和数据空间。

JPEG相同,WebP是一种有损压缩。但谷歌表示,这种格式的主要优势在于高效率。他们发现,“在质量相同的情况下,WebP格式图像的体积要比JPEG格式图像小40%。谷歌浏览器已经支持webp格式,Opera在版本号Opera11.10后也增加了支持,然而火狐和ie暂时还不支持webp格式,可以采用flash插件来显示webp,当然这样会耗费一些性能。

iOS用UIImageView展示图片通常借助于SDWebImage框架,在SDWebImage介绍可以看到有对WebP图片格式的支持。

在使用CocoaPods 安装有介绍该框架支持4个Subspecs Core、MapKit、GIF、WebP,默认

1
pod 'SDWebImage

只是工程引入安装Core,如果需要安装WebP,Podfile需要这样编写

1
pod 'SDWebImage/WebP'

执行pod install就会出现下列错误

这个需要修改本地本地~/.cocoapods/repos/master/Specslibwebp.podspec.json默认的仓库地址,默认的是

1
https://chromium.googlesource.com/webm/libwebp

替换为

1
https://github.com/webmproject/libwebp.git

在Specs库中, 找到对应的libwebp版本的文件路径,可以执行下面的指令

1
find ~/.cocoapods/repos/master -iname libwebp

根据报错依赖的版本,进入libwep目录修改对应版本的libwebp.podspec.json,重新执行Pod install

查看项目Pods

展示WebP图片示例代码:

1
2
3
4
5
NSString *url = @"http://wapx.cmvideo.cn:8080/publish/poms/image/5500/523/949/201811021714_15_V34_1080.webp";

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];

UIImage *image = [UIImage sd_imageWithWebPData:data];