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

Web端接入AVIF格式图片说明

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

AVIF是一种基于AV1视频编码的新图像格式,相对于JPEG、WebP等图片格式压缩率更高,并且画面细节更好。您可以通过本文所示的方法,在Web端接入AVIF格式图片。

AVIF简介

AVIF使用现代压缩算法,在相同质量的前提下,文件大小约为JPEG的35%。AVIF支持高动态范围(HDR)和标准动态范围 (SDR)内容,包括常用的sRGB和BT.2020色彩空间。它支持8、10和12位的颜色深度、胶片颗粒保留、PNG图像的透明度以及GIF格式的动画。

AVIF兼容的浏览器及其版本

AVIF兼容多种浏览器。关于AVIF格式图片兼容的浏览器及其版本,请参见AVIF兼容性。

image..png

兼容的浏览器如何显示AVIF格式的图片

对于AVIF格式图片兼容的浏览器,在Web端直接使用img标签即可显示图片。示例代码如下所示:

<img
 src="https://image-compress-demo.oss-cn-zhangjiakou.aliyuncs.com/demo.jpg?x-oss-process=image/format,avif"
/>

不兼容的浏览器如何显示AVIF格式的图片

部分浏览器不支持AVIF,如果需要兼容多种浏览器,Web端可使用自动降级方案。

您可以根据实际情况选择合适方案,优缺点如下:

方案

优点

缺点

方案一:使用picture标签

实现简单,代码量小。

  • 浏览器降级时会先请求AVIF再请求原图,增加流量开销。

  • 不支持IE浏览器和OperaMini,因为该浏览器不支持picture标签。picture标签的兼容性如下图所示:

    image.png

方案二:使用CSS+JS方式

通过JS判断浏览器是否支持AVIF,无流量损耗。

代码量较多,需将图片转成CSS样式渲染。

方案一:使用picture标签

采用HTML的picture标签,在picture标签中包含source和img标签。source标签设置为AVIF图片,浏览器会优先显示AVIF图片。如果浏览器渲染AVIF图片失败,就会请求img标签内的图片并正常渲染。

<picture>
 <source
 srcset="https://image-compress-demo.oss-cn-zhangjiakou.aliyuncs.com/demo.jpg?x-oss-process=image/format,avif"
 type="image/avif"
 />
 <img
 src="https://image-compress-demo.oss-cn-zhangjiakou.aliyuncs.com/demo.jpg"
 />
</picture>

方案二:使用CSS+JS方式

除了使用picture标签外,还可以使用CSS+JS的方式,兼容显示AVIF图片。使用supportsAvif方法判断浏览器是否支持AVIF,如果支持,设置div的样式为avif,背景图片为AVIF图片;否则,设置样式为no-avif,背景图片为原图或其他备用图片。

JS代码

async function supportsAvif() {
 if (!this.createImageBitmap) return false

 const avifData =
 'data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A='
 const blob = await fetch(avifData).then((r) => r.blob())
 return createImageBitmap(blob).then(
 () => true,
 () => false
 )
}

;(async () => {
 const classAvif = (await supportsAvif()) ? 'avif' : 'no-avif'
 document.body.classList.add(classAvif)
})()

CSS代码

div {
   background-repeat: no-repeat;
   background-size: 500px 200px;
   width: 500px;
   height: 200px;
 }
 .avif div {
   background-image: url(https://image-compress-demo.oss-cn-zhangjiakou.aliyuncs.com/demo.jpg?x-oss-process=image/format,avif);
 }
 .no-avif div {
   background-image: url(https://image-compress-demo.oss-cn-zhangjiakou.aliyuncs.com/demo.jpg);
 }

常见问题

Web端是否支持接入HEIC的图片?

不支持。Web页面需要安装解码器才能查看HEIC图片。

相关文章

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号