webp

图片分很多种,比较主流的就是:位图(BMP),jpg(JPEG,有损压缩格式),png(无损压缩格式)等,这三种,按照图片大小和清晰度来看,依次是:BMP > png > jpg。因为jpg是有损压缩格式,所以jpg图片相对最小。iOS普遍选择的是png来作为最优先选择的图片(苹果官方也是这样建议的)。

不过,有一种图片格式,在大小上比png小,图片质量上跟png差不多,就是WebP。

什么是WebP?

简单描述一下,WebP是google创造出的一种图片格式,图片的压缩和解码都由google提供的API完成(各种语言都有,不过目前好像没看到js可以解码WebP的),在无损压缩的情况下,比png要小28%左右。

现在已经被各大浏览器厂商兼容(如:Chrome,Firefox等),不过苹果的Safri还没有兼容这种格式,所以如果UIWebView里面含有WebP的图片的话,就会显示不出来(但是我们可以通过NSUrlProtocol来做处理)。如果要在APP中使用得话,我们需要引入SDWebImage这个第三方库。

SDWebImage使用WebP

这个第三方库封装得很好,使用起来与我们以前用他来加载网络图片方式一样,如下:

[imageView sd_setImageWithURL:[NSURL URLWithString:图片路径] placeholderImage:[UIImage imageNamed:@"默认图片"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) { }]; 
    UIImageView *view = [[UIImageView alloc] init];
    view.frame = CGRectMake(10, 100, 320, 200);
    NSString *url = @"http://www.ioncannon.net/wp-content/uploads/2011/06/test2.webp";
    [view sd_setImageWithURL:[NSURL URLWithString:url] placeholderImage:[UIImage imageNamed:@"pia"]];
    [_scrollView addSubview:view];

 self.view.backgroundColor = [UIColor colorWithWhite:0.863 alpha:1.000];
    //http://www.ioncannon.net/wp-content/uploads/2011/06/test2.webp

YYImage

YYImage *image = [YYImage imageNamed:@"[email protected]"];
YYAnimatedImageView *imageView = [[YYAnimatedImageView alloc] initWithImage:image];
imageView.frame = CGRectMake(10, 100, 320, 200);
[self.view addSubview:imageView];

1 :sdwebimage 本身支持网路请求webp格式图片,如图 代码

[view sd_setImageWithURL:[NSURL URLWithString:url] placeholderImage:[UIImage imageNamed:@"pia"]];
直接请求webp图片,但是webp格式的gif图片还没支持!

2:YYImage 不仅支持webp格式的图片,而且对webp格式的gif图 同样支持!

PS:里边有sdwebimage的加载webp图片过程分析
https://www.cnblogs.com/lizheng114/p/6582352.html

你可能感兴趣的:(webp)