美文网首页
google webp在iOS上的使用

google webp在iOS上的使用

作者: mymirror | 来源:发表于2019-05-28 13:59 被阅读0次

    前段时间比较充裕,大家都说需要对APP的ipa包进行瘦身,想到了几点:

    1、对部分组件代码打包成静态库

    2、对APP内的资源文件进行过滤以及对图片进行再次压缩

    3、利用google开源的webp工具,对图片进行压缩,然后再加载webp后缀的图片

    其中第一点和第二点都使用过了,APP的ipa包也得到了明显的减小,但是由于工程内需要预加载的图片过多,以及很多图片都是一些较大的高清图片,图片压缩已经到了极致,不能再次进行压缩,否则会让图片显得模糊不清,故使用google的webp工具对图片进行压缩,这个工具可以让几百K的图片压缩后变成几K,而且图片不会变的模糊。

    在github上我们可以查询到前人已经有人封装好了库给我们使用,但是我们pod的时候libwebp.a我们无法pod下来,这个就需要我们自己去google网站https://chromium.googlesource.com/webm/libwebp去下载webp的c代码,然后把这些基本导入到工程中,同时SDWebImage以前的版本因为集成了webp库是可以直接拿来使用的,不知后面为啥又把这个库给直接删除了。

    目前需要用加载webp后缀图片的时候,我们还是需要SDWebImage这个框架中的一些方法的,这里就不多说,后面大家自己看源代码。下面我把webp的c语言代码直接封装成了webp.framework 静态库供自己使用,同时配合SDWebImage进行封装加载webp图片。具体使用如下:

    1、cocoapod管理

    pod 'WebpiOS'

    2、手动导入

    把webp文件下的文件导入到工程,同时工程依赖SDWebImage第三方框架

    导入头文件 #import "UIImage+WebP.h"

    @interface UIImage (WebP)

    (nullable UIImage *)sd_imageWithWebPData:(nullable NSData *)data;

    @end

    图片转换工具下载地址 https://github.com/mymirror/webp-.git

    such as:

    UIImage *img = [UIImage sd_imageWithWebPData:[NSData dataWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"bg_third@3x" ofType:@"webp"]]];

    UIImageView imageview = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, img.size.height320/img.size.width)];

    [self.view addSubview:imageview];

    [imageview setImage:img];

    具体demo地址:

    https://github.com/mymirror/WebpiOS

    相关文章

      网友评论

          本文标题:google webp在iOS上的使用

          本文链接:https://www.haomeiwen.com/subject/bzbrtctx.html