Filter 算法说明
PNG 图片的码流数据都在数据块 IDAT 中,IDAT 中是以 zlib 格式的压缩码流,在 zlib 压缩之前,可以采用 Filter算法对原始数据进行处理,有助于提升压缩率。PNG 图像如下如所示,X 表示当前要进行 Filter 的像素,A 为当前像素左边像素,B 为当前像素上边像素,C 为当前像素左上边像素,则对 Fiter 的说明如下所示:

Filter 类型 | 函数 | Filter 方式 |
---|---|---|
0 | 无 | 保留原始数据 |
1 | 减 | 减去 A |
2 | 上 | 减去 B |
3 | 平均 | 根据 A 和 B 取平均,并向下取整 |
4 | Paeth | 使用最接近与 A + B - C 的 A、B 或者 C |