赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 对象存储
  4. 操作指南
  5. 数据处理
  6. 图片处理
  7. 高级图片处理参数
  8. iOS接入HEIC和AVIF解码说明

iOS接入HEIC和AVIF解码说明

  • 高级图片处理参数
  • 发布于 2025-04-21
  • 0 次阅读
文档编辑
文档编辑

在iOS11之前,iOS系统不支持HEIC图片解码,而在iOS16之前不支持AVIF解码。如果您需要解码高级图片处理后的HEIC和AVIF格式,可以配置iOS客户端的SDWebImage图片库,以便支持AVIF和HEIC图片解码。

前提条件

请确保SDWebImage为5.0.0及以上版本。

iOS接入HEIC解码说明

高效率图像格式HEIF(High Efficiency Image Format)是一种压缩图片格式,使用更现代的压缩算法,在相同质量的前提下,HEIF文件的大小约为JPEG文件的40%。

阿里云高性能HEIC解码库是在开源的libheif和libde265基础上进行二次开发的,针对ARM平台进行了大量优化,借鉴了其他同类开源库的优点,并在解码链路的各个环节进行了优化,显著提升了运行速度。与原始开源版本相比,解码效率提升了数倍。阿里云高性能HEIC解码库的代码链接,请参见Github。

iOS 11及以上版本支持HEIC解码,无需单独接入。如果您的App需要支持iOS 11以下版本,请按照以下步骤将客户端文件接入阿里云高性能HEIC解码库,配置后SDWebImage即可支持HEIF图片解码。

  1. 修改iOS客户端的Podfile文件,加入阿里云pod仓库和对应HEIF软解库依赖的支持代码。

    #加入阿里云pod仓库
    source 'https://github.com/aliyun/aliyun-specs.git'
    
    pod 'SDWebImageHEIFCoder'
    #指定阿里云优化的HEIF版本
    pod 'libde265', '1.0.10-aliyun'
    pod 'libheif', '1.12.3-aliyun'
    pod 'libyuv-aliyun', '1.8.48'
  2. 使用以下代码以便支持老版本HEIF解码库。

    if (@available(iOS 11.0, macOS 10.13, tvOS 11.0, *)) {
        //iOS11以后的系统不用启用软解。
    } else {
        // iOS11之前的系统不支持硬解,使用软解。
        SDImageHEIFCoder *HEIFCoder = [SDImageHEIFCoder sharedCoder];
        [[SDImageCodersManager sharedManager] addCoder:HEIFCoder];
    }

iOS接入AVIF解码说明

AVIF是一种基于AV1视频编码的新图像格式,相对于JPEG、Webp图片格式压缩率更高,并且画面细节更好。AVIF通过使用更现代的压缩算法,在相同质量的前提下,AVIF文件大小是JPEG文件的35%左右。

iOS系统原生并不支持AVIF的解码处理,因此需要接入三方的解码库,具体操作如下:

  1. 修改Podfile引入如下解码库依赖。

    #加入阿里云pod仓库
    source 'https://github.com/aliyun/aliyun-specs.git'
    
    pod 'SDWebImageAVIFCoder'
    pod 'libavif', :subspecs => [
      'libdav1d'
    ]
    # 引入预编译优化版本的dav1d。
    pod 'libdav1d', '1.0.8-aliyun'
  2. 接入解码库到SDWebImage。

    SDImageAVIFCoder *AVIFCoder = [SDImageAVIFCoder sharedCoder];
    [[SDImageCodersManager sharedManager] addCoder:AVIFCoder];

加载AVIF和HEIC图片

接入新的解码库后,SDWebImage将支持AVIF和HEIC解码,加载图片的方式无需修改,仍与原来的调用方式一致。

  • 通过UIImageView加载图片

    [self.imageView sd_setImageWithURL:[NSURL fileURLWithPath:tempFilePath] completed:nil];
  • 直接下载图片

    [[SDWebImageManager sharedManager] loadImageWithURL:[NSURL fileURLWithPath:tempFilePath] options:0 progress:nil completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL) {
    }];
相关文章

HEIF或AVIF图片高级压缩 2025-04-21 18:16

通过OSS提供的图片高级压缩功能,您可以高效地将图片转换为HEIF或AVIF高压缩比格式。 前提条件 仅华北3(张家口)、华东2(上海)、华东1(杭州)、华南1(深圳)、华北2(北京

Web端接入AVIF格式图片说明 2025-04-21 18:16

AVIF是一种基于AV1视频编码的新图像格式,相对于JPEG、WebP等图片格式压缩率更高,并且画面细节更好。您可以通过本文所示的方法,在Web端接入AVIF格式图片。 AVIF简介 AVIF使用现代压缩算法,在相同质量的前提下,文件大小约为JPEG的35%。AVIF支持高动态范围(HDR)和标准动

客户端接入AVIF格式图片编码说明 2025-04-21 18:16

本文介绍如何在移动客户端上将图片编码为AVIF格式,并提供示例demo帮助您更好地接入该功能。 重要 AVIF图片编码功能目前为实验性,可能在未来版本中有所调整或更新。请

Android接入HEIC和AVIF解码说明 2025-04-21 18:16

本文为您介绍如何配置Android客户端的相关依赖,以便支持AVIF和HEIC图片解码。 Android接入HEIC解码 HEIC是一种

iOS接入HEIC和AVIF解码说明 2025-04-21 18:16

在iOS11之前,iOS系统不支持HEIC图片解码,而在iOS16之前不支持AVIF解码。如果您需要解码高级图片处理后的HEIC和AVIF格式,可以配置iOS客户端的SDWebImage图片库,以便支持AVIF和HEIC图片解码。 前

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号