跳到主要内容

PNG to AVIF

在本地转换一份静态PNG。选择质量或无损编码,再检查实际AVIF。

质量100与无损编码是不同模式。无损针对浏览器解码后的8位像素,不是原始PNG文件或元数据。

文件留在浏览器中,不提供缩放、动画导出或文件夹批量转换。

实际AVIF结果PNG → AVIF

转换后会在这里显示实际AVIF。

棋盘格只是显示背景。请在实际使用图片的应用中确认结果。

如何将PNG转为AVIF

选择一份静态PNG,设置1至100的质量或单独的无损模式,再点击转换为AVIF。下载前检查实际预览、尺寸和字节数。文件留在设备,编码器作为网站代码下载,本页不把图片上传到转换服务。

接收应用支持AVIF时再使用它。较小的分发文件与归档原件满足不同需求;需要确切原始数据、元数据或其他应用兼容性时,请保留PNG。

质量100等于无损吗?

2026年10月30日,我们生成六份原创合成PNG,在一种桌面浏览器用本页保存十二份实际AVIF。129×65彩色细边PNG为292字节,质量40、80、100分别生成1975、3929、11210字节的AVIF,均保留奇数尺寸。这些是具体文件,不是对照片体积的预测。

独立Pillow解码显示,质量100时8385个不透明像素中8359个的RGB不同,单个颜色通道最大差值221。单独无损模式生成17658字节,这个全不透明样本的不同像素为0。该编码器的质量100与lossless=true是不同设置。下方放大图来自实际下载的解码视图,不是竞品测试。

质量100等于无损吗?
2026-10-30原创PNG;实际AVIF独立解码并放大显示。一种浏览器,未实测竞品。

无损编码保留的是哪些像素?

129×65透明度样本包含Alpha为0、64、128、255的四条色带。质量60、100和无损AVIF独立解码后保留相同透明度,与PNG的Alpha差值为0;无损文件573字节,原PNG219字节。PNG已有的不透明背景仍是图片内容。

透明度保留不等于PNG逐字节往返不变。例如源值[65,130,195,0]在无损下载中成为[0,0,0,0];Alpha为64时,[65,130,195,64]成为[64,131,195,64]。AVIF编码前的浏览器画布处理可能改变隐藏或半透明RGB。无损设置针对解码后的8位像素编码,不承诺保留原PNG封装、配置文件或每个源RGBA值。

无损编码保留的是哪些像素?
2026-10-30原创PNG;实际AVIF独立解码并放大显示。一种浏览器,未实测竞品。

AVIF一定更小吗?

1×1 PNG为69字节,质量60生成尺寸相同的310字节AVIF。另一个257×129色块图在同一质量下由505增至581字节。尺寸小不等于另一种格式没有封装开销,这两例均未节省体积。

固定种子257×129随机彩色PNG为99752字节。质量60生成22694字节AVIF,但独立解码后33153个不透明像素的RGB均有变化。无损下载在此例中像素完全相同,却占141874字节。只有画面变化符合用途,缩小文件才有意义;体积本身不能证明图像数据相同,也不保证节省。

AVIF一定更小吗?
2026-10-30原创PNG;实际AVIF独立解码并放大显示。一种浏览器,未实测竞品。

还实际检查了什么?

第六份有效来源是17×9、四色调色板且含半透明的索引PNG。无损AVIF为644字节,PNG139字节,尺寸和透明度保留。十二份AVIF均为一张静态图。这些结果覆盖受控低位深和8位来源,不是HDR、广色域或真实相机测试。

七份错误控制均被拒绝且无预览或下载:数据截断、文本改名PNG、边长4097像素、4001见方而总计16008001像素、超过20 MiB、16位PNG和两帧APNG。还实际取消了一次转换,并拒绝质量0。更换输入或设置会清除旧结果;这些检查不证明所有有效PNG表示都受支持。

复现确切的比较

输入清单、实际输出验证和SHA-256列表保存每组日期、尺寸、字节与设置。生成器使用Pillow 12.3.0、NumPy 2.3.5和种子20261030;编码使用固定@jsquash/avif 2.1.1、速度6和8位像素。大体积边界与取消样本可在本地生成;参考PNG是实际AVIF的独立解码,不是替代转换结果。

本次未测试其他浏览器、实体手机或接收应用。页面一次处理一份文件,不提供缩放、去背景、动画编码或文件夹批量;明确拒绝动态和16位PNG。浏览器解码、色彩处理和编码器版本可能改变字节,请保留原件,并在实际使用应用中检查。

下载输入与十二份实际AVIF

此表的差异数只比较源图完全不透明像素的RGB;完整RGBA差异、设置、尺寸、字节和完整SHA-256见verification.json。不会为每次转换生成差异报告。

源PNG / 尺寸 / 字节实际AVIF / 模式 / 字节不同的不透明像素
tiny-opaque.png

1 × 1 · 69 bytes

tiny-opaque-q60.avif

lossy · 60 · 310 bytes

1 × 1 px

1
color-edges.png

129 × 65 · 292 bytes

color-edges-q40.avif

lossy · 40 · 1,975 bytes

129 × 65 px

8,384
color-edges.png

129 × 65 · 292 bytes

color-edges-q80.avif

lossy · 80 · 3,929 bytes

129 × 65 px

8,367
color-edges.png

129 × 65 · 292 bytes

color-edges-q100.avif

lossy · 100 · 11,210 bytes

129 × 65 px

8,359
color-edges.png

129 × 65 · 292 bytes

color-edges-lossless.avif

lossless · 100 · 17,658 bytes

129 × 65 px

0
alpha-bands.png

129 × 65 · 219 bytes

alpha-bands-q60.avif

lossy · 60 · 559 bytes

129 × 65 px

2,080
alpha-bands.png

129 × 65 · 219 bytes

alpha-bands-q100.avif

lossy · 100 · 603 bytes

129 × 65 px

2,080
alpha-bands.png

129 × 65 · 219 bytes

alpha-bands-lossless.avif

lossless · 100 · 573 bytes

129 × 65 px

0
flat-color.png

257 × 129 · 505 bytes

flat-color-q60.avif

lossy · 60 · 581 bytes

257 × 129 px

33,153
seeded-noise.png

257 × 129 · 99,752 bytes

seeded-noise-q60.avif

lossy · 60 · 22,694 bytes

257 × 129 px

33,153
seeded-noise.png

257 × 129 · 99,752 bytes

seeded-noise-lossless.avif

lossless · 100 · 141,874 bytes

257 × 129 px

0
indexed.png

17 × 9 · 139 bytes

indexed-lossless.avif

lossless · 100 · 644 bytes

17 × 9 px

0

verification.json · input-manifest.json · SHA256SUMS.txt · generate-fixtures.py · REPRODUCE.md · ENCODER-LICENSE.txt ·

AOMedia: AVIF · jSquash encoder · MDN: native canvas export fallback

常见问题

质量100与无损模式相同吗?

不同。所测编码器的彩色细线样本在质量100时有8359个不透明像素改变,单独无损模式为0,请比较可下载文件。

透明PNG区域会保持透明吗?

三份透明样本输出均保留所测Alpha值,但不会移除不透明背景,编码前可能改变隐藏或半透明RGB。

为什么AVIF比PNG更大?

内容、设置和封装开销都会影响大小。小PNG由69增至310字节,随机彩色无损样本由99752增至141874字节,不承诺固定节省比例。

能转换数千张PNG或整个文件夹吗?

本页一次转换一份文件,没有文件夹扫描、批量队列或ZIP导出。公开样本用于比较设置,不为每份上传生成像素差异报告。

能用动态或16位PNG吗?

这里会拒绝这两类输入。本工具生成静态8位AVIF,不会静默丢弃APNG帧。需要动画、精度、配置或元数据时请保留原件。