一、阅前准备
- HEIF图片格式是什么?
高效率图像格式(High Efficiency Image Format ,HEIF)最早被苹果公司的 iPhone 所使用,并且也将用于 Google 的 Android P 手机系统。微软也于最新放出的 Windows 10 Build 17123 预览版开始,新增了对 HEIF 图像格式的系统原生支持,所以系统极客将在本文中为大家简介 HEIF 这一新兴的高效率图像格式。
- HEIF优于JPEG图像格式
高效率图像格式在各方面均优于 JPEG,通过使用更现代的压缩算法,它可以将相同数量的数据大小压缩到 JPEG 图像文件的 50% 左右。随着手机 Camera 的不断升级,照片的细节也日益增加。通过将照片存储为 HEIF 格式而不非 JPEG,可以让文件大小减半,几乎可以在同一部手机上存储以前 2 倍的照片数量。如果一些云服务也支持 HEIF 文件,则上传到在线服务的速度也会更快,并且使用更少的存储空间。在 iPhone 上,这意味着您的照片应该会以以前两倍的速度上传到 iCloud 照片库。
JPEG 标准可以追溯到 1992 年,JPEG 标准的最新版本也于 1994 年完成,JPEG 长期以来为我们提供了很好的服务,但现代(新)标准超越它并不是很奇怪。
- HEIC唯一缺点:兼容性
目前使用 HEIF 或 HEIC 照片唯一的缺点就是兼容性问题。现在的软件只要能够查看图片,那它肯定就可以读取 JPEG 图像,但如果你拍摄了以 HEIF 或 HEIC 扩展名结尾的图片,并不是在所有地方和软件中都可以正确识别。
这也是当我们将照片附加到电子邮件或在不支持 HEIF 文件的服务中进行共享时, iPhone 和 iPad 会自动将其转换为 JPEG 图像的原因。在使用 iTunes 将 HEIF 照片导入 Windows PC 时,也会自动将它们转换为 JPEG 格式。
虽然 Mac 从 macOS High Sierra 开始支持 .HEIF 和 .HEIC 文件,但 Windows 10 从 Windows 10 Build 17123 预览版才开始提供 HEIF 图像内置支持,所以对于老旧 Windows、macOS 和旧版 iOS 与 Android 用户需要使用第三方图像查看器或转换软件才能查看 .HEIF 或 .HEIC 文件。
那我们如何让HEIF 支持全端Android 机型呢? 这里提供了一种软解码实现方案,具体接入如下:
二、遇到了什么问题
-
HEIF 图片在iOS 11以上开始支持,但是在Android 系统支持 一直比较慢,而且有很多系统性的bug 会导致解码失败;所以我们干脆实现一种软解的方案;
-
HEIF 使用自研的解码能力,发现使用HEIF 图片加载整体体积降低 50%+,用户加载更快!
-
针对线上图片性能、图片进行可用性、网络耗时的监控,全面感知客户端的图片加载问题;
三、开发环境
推荐开发者使用 Android Studio 作为自己的开发工具,本开发文档也是基于 Android Studio开发环境下进行编写的。
四、集成方式
- 项目 build.gradle 下加上
maven {
url 'https://artifact.bytedance.com/repository/Volcengine/'
}
- app module build.gradle下加上
国内版本:
或者到这里可以找到最新版本:https://artifact.bytedance