webp

作者: 超_iOS | 来源:发表于2018-02-04 10:38 被阅读30次

    图片分很多种,比较主流的就是:位图(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:@"nyancat@2x.webp"];
    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

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