【发布时间】:2023-12-20 05:49:01
【问题描述】:
从下面的示例图片中,我有一个黄色边框,仅用于显示目的。
实际的 .png 文件是 3 像素 x 3 像素的简单黑白图像。我最初想尝试作为 2x2,但这无助于解释低/高与高/低绘图流。至少这样,我会有两个黑色,一个白色从顶部,或者一个白色,两个黑色从底部..
所以我读取数据块,获取 IDAT 块,解码 (zlib) 并得出 12 个字节,如下所示
00 20 00 40 00 80
所以,我的问题是,如何将上述内容分解为 3x3 黑白样本...此外,它以调色板格式保存并正确识别 1 的位深度和 2 的调色板...颜色托盘 [0] 是 RGBA 全零。 Palette1 的 RGBA 为 255、255、255、0
稍后我将最终进入多种其他深度格式,只是想从最简单的开始。
第二部分。如果需要考虑任何特殊情况,尤其是关于 Alpha 通道(我已经在调色板中寻找)可能会绊倒我的任何特殊情况,任何有关处理其他深度格式的指导都会有所帮助。
【问题讨论】:
-
如果你想完全了解IDAT格式,只要阅读标准,很简单:libpng.org/pub/png/spec/iso/index-object.html#11IDAT
-
感谢您提供的附加文件...我也会调查一下,但下面的那个实际上为我清理了一堆我实际上并没有遵循任何规范...图形不是我的小学,所以我正在尝试学习而不是“在这里......使用这个。”