首页 > 其他分享 >iOS webp支持

iOS webp支持

时间:2022-11-18 14:01:18浏览次数:60  
标签:WebP iOS webp 支持 NSString path SDWebImage 加载

WebP简介
WebP,是一种同时提供了有损压缩与无损压缩的图片文件格式,是Google新推出的影像技术,它可让网页图档有效进行压缩,同时又不影响图片格式兼容与实际清晰度,进而让整体网页下载速度加快。

  • WebP 无损压缩的图片可以比同样大小的 PNG 小 26%;
  • WebP 有损压缩的图片可以比同样大小的 JPEG 小 25-34%;
  • WebP 支持无损的透明图层通道,代价只需增加 22% 的字节存储空间;
  • WebP 有损透明图像可以比同样大小的 PNG 图像小3倍。

WebP与Gif比较
优势:
支持有损和无损压缩,并且可以合并有损和无损图片帧
体积更小,GIF 转成有损 WebP 后可以减小 64% 的体积,转成无损可以节省 19% 的体积
颜色更丰富,支持 24-bit 的 RGB 颜色以及 8-bit 的 Alpha 透明通道(而 GIF 只支持 8-bit RGB 颜色以及 1-bit 的透明)
添加了关键帧、metadata 等数据

劣势:
消耗较多的 CPU 和解码时间(多 1.5~2.2 倍)
UIWebView无法加载(需通过NSUrlProtocol来处理)
压缩时间长,大概是png的8倍左右(不过一般都是在服务端压缩,客户端解码,所以服务端可以做个预压缩)

iOS系统默认未提供webp图片的支持,当然可以通过webview显示出来,一般开发使用可以通过YYKit或者SDWebImage这两个三方库来实现,下面将介绍使用三方库实现webp的显示

1、SDWebImage加载Webp

    NSString *imgName = @"2222";
    NSString *imgType = @"webp";
    NSString *path = [[NSBundle mainBundle] pathForResource:@"imgName" ofType:imgType];

    //SDWebImage 加载本地资源
    NSData *webpData = [NSData dataWithContentsOfFile: path];
    UIImage *image = [[SDImageAWebPCoder sharedCoder] decodedImageWithData:webpData options:nil];
    imgV.image = image;

    //SDWebImage 加载本地url
    NSURL *imgUrl = [NSURL fileURLWithPath:path];
    [imgV sd_setImageWithURL:imgUrl];

    //SDWebImage 加载网络url
    NSURL *imgUrl = [NSURL URLWithString:@"https://123213123312.webp"];
    [imgV sd_setImageWithURL:imgUrl];

2、YYImage加载Webp

    NSString *imgName = @"2222";
    NSString *imgType = @"webp";
    NSString *path = [[NSBundle mainBundle] pathForResource:@"imgName" ofType:imgType];

    NSData *data = [NSData dataWithContentsOfFile:path];
    imgV.image =[YYImage imageWithData:data];

参考来源:

https://juejin.cn/post/7071087293833936932

标签:WebP,iOS,webp,支持,NSString,path,SDWebImage,加载
From: https://www.cnblogs.com/qqcc1388/p/16903000.html

相关文章

  • 深度解读Webpack中的loader原理
    一、前言webpack是一个现代JavaScript应用的静态模块打包器。那么webpack是怎样实现不同种类资源模块加载的呢?没错就是通过loader。loader用于对模块的源代码进行......
  • Webpack中的plugin插件机制
    大家有没有遇到过这些问题:webpack打包之后的文件没有压缩静态文件要手动拷贝到输出目录代码中写了很多环境判断的多余代码上一篇「webpack核心特性」loader说到......
  • 详解webpack构建优化
    当项目越来越复杂时,会面临着构建速度慢和构建出来的文件体积大的问题。webapck构建优化对于大项目是必须要考虑的一件事,下面我们就从速度和体积两方面来探讨构建优化的策略......
  • 自学 TypeScript 第三天 使用webpack打包 TS 代码
    前言:大家好啊,昨天介绍了TS编译器的配置,但在我们实际开发当中直接使用TS编译器去编译代码的情况会有,但没有很多,因为我们在开发大型项目的时候,一般我们都会用到打包工具......
  • ubuntu双系统+NVIDIA+cuda驱动安装+bios grub一条龙踩坑
    目录ubuntu双系统+NVIDIA+cuda驱动+grub一条龙踩坑ubuntu+windows双系统时间设置修改启动时默认进入的系统ubuntu内部NVIDIA驱动+cuda系统启动时和安装cuda时可能遇到的坑u......
  • iOS 升级到XCode13以后运行模拟器经常导致MacOS系统卡死
    升级到XCode13后运行模拟器会导致MacOS系统卡死,升级到XCode14后,该问题仍然存在,当然也有可能是公司办公电脑配置太低导致的[dog],卡死频率很高,会导致整个屏幕无法操作,无法看......
  • 【Azure 应用服务】Azure Web App 服务默认支持一些 Weak TLS Ciphers Suite,是否有办
    问题描述当AzureWebApp进行安全扫描后,发现依旧支持很多弱TLS加密套件(WeakTLSCiphersSuite),那么是否有办法来关闭这些弱的加密套件呢?在WindowsIIS环境中,可以通过......
  • 手把手,完整的从0搭建vite-vue3-ts项目框架:配置less+svg+pinia+vant+axios
    项目同步git:https://gitee.com/lixin_ajax/vue3-vite-ts-pinia-vant-less.git  为避免赘述,过于基础的点会直接省略或贴图,比如创建文件夹/文件的路径/路由一类配置相......
  • WordPress编辑器支持ppt一键粘贴
    ​ ueditor粘贴不能粘贴word中的图片是一个很头疼的问题,在我们的业务场景中客户要求必须使用ueditor并且支持word的图片粘贴,因为这个需求头疼了半个月,因为前端方面因为安......
  • Vue 3.x 中使用 Axios 请求远程Api接口数据
    一、安装axios插件npminstallaxios--save//或者yarnaddaxios//或者cnpminstallaxios--save 注:安装包的时候后面的 --save,如果不加,只安装在当前项目,把......