如何将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是不同设置。下方放大图来自实际下载的解码视图,不是竞品测试。
无损编码保留的是哪些像素?
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值。
AVIF一定更小吗?
1×1 PNG为69字节,质量60生成尺寸相同的310字节AVIF。另一个257×129色块图在同一质量下由505增至581字节。尺寸小不等于另一种格式没有封装开销,这两例均未节省体积。
固定种子257×129随机彩色PNG为99752字节。质量60生成22694字节AVIF,但独立解码后33153个不透明像素的RGB均有变化。无损下载在此例中像素完全相同,却占141874字节。只有画面变化符合用途,缩小文件才有意义;体积本身不能证明图像数据相同,也不保证节省。
还实际检查了什么?
第六份有效来源是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帧。需要动画、精度、配置或元数据时请保留原件。