知识文章 · 编写日期 2026-11-10
海角网看图:PNG七遍是七张图吗
不是。Adam7把同一幅PNG静态图的像素位置分成七个子集,每个位置只属于其中一遍;七遍合起来才覆盖这幅图。以左上角8乘8位置块为例,各遍新增1、1、2、4、8、16、32个位置,合计64,不是重复发送七份完整图。
面向海角网相关图文阅读中的图片格式问题。依据W3C《PNG第三版》2025年6月24日建议标准,2026年11月10日查阅。只讲PNG静态图的像素传递顺序;配图为原创格子题,不包含任何真实论坛截图。
先确认是在讨论哪种PNG
PNG图像头中,交错方法0表示按行顺序传递,方法1是Adam7七遍交错。Adam7每遍选取不同像素子集,最终组成同一幅图。[1] 这不是由文件名里的“高清”或网页描述决定的属性。
这里的“遍”指编码分配的一组像素位置。它与一张完整图、一个视频帧或一个网络请求不是同一个单位;不能看到数字7,就先假定每遍都保存同样多的位置。
把8乘8位置逐遍数一遍
图中取从左上角开始的8行8列位置块,并按规范的遍次分配规则标上1至7。数字只是位置标签:标1的格子在第一遍送达,标2的在第二遍,依次类推。
这个完整8乘8块的七遍新增位置数依次是1、1、2、4、8、16、32;累计是1、2、4、8、16、32、64。可以用图逐行点数,第七遍占四条交替整行,共4×8=32格;其余六遍共同补足另32格。
第三遍结束时只有4个位置,仍不是前三整行。由此可见,Adam7是分散位置逐步补全,而不是每次从上往下多画一条完整横带。图上的背景色只帮读者辨认遍次,不代表真实像素颜色。
七遍并不意味着每遍七分之一
本例第七遍含32个位置,占64格的一半;第一遍只有1格。用“完成三遍”直接写成“下载完成3/7”就混淆了遍数与数据量。
即便已数出某遍的像素个数,也不能直接等同压缩文件的字节比例。图只计算位置,尚未计算颜色通道、位深、过滤与压缩数据。也不要由这张位置图承诺节省多少流量或缩短多少等待时间。
它与放大和视频隔行有什么不同
普通缩放要给输出的更多位置计算或复制颜色;本题的最终位置和像素来自同一张PNG,区别在于哪些数据先到达。逐遍补齐不等于从已经完整的低分辨率图中恢复未记录细节。
视频隔行中的两场还可能对应不同采样时刻,运动位置会变化;本题七遍不是七个拍摄时刻。读图时应先把静态图编码、网页显示流程与视频采样分开,不能用一种解释概括所有条纹或模糊。
动手核对
- 先区分PNG原文件、网页缩略图与页面截图,避免比较的对象已变。
- 读取文件明确给出的交错属性;只有看到加载现象时保留判断未定。
- 用8乘8格图核对遍次与累计位置,不把遍数换成下载百分比。
常见问题
七遍就是七帧动画吗?
不是。这里的七遍是同一静态图各像素子集的传递次序,不是七个不同时间画面。
第一遍只有一个像素吗?
图中一个8乘8块是一个位置;更大的图像会重复该分配模式,所以第一遍通常包含多个分散像素。
小于8乘8的图也每遍都有像素吗?
不一定。尺寸不足时,有些遍次可能为空;本图统计限定完整的8乘8位置块。
依据与延伸阅读
- [1] PNG第三版:§8 Interlacing and pass extraction、§11.2.1 IHDR(W3C,核验日期 2026-11-10)
支持方法0/1、Adam7七遍像素位置分配及小图空遍次;本页位置计数为依据规则作出的教学计算。