libPNG 在 X,Y 直接绕过缓冲区读取 RGBA

libPNG reading RGBA at X,Y directly bypassing the buffer

我很难理解 libPNG。

我的意图是在我的自定义 for 循环中读取数据 (BGRA) 我的内存不足 - 因此我不想将整个图像读入 Buffer 我想直接从 PNG 文件中采样 PNG 缓冲区。

喜欢 png_bgra ReadAt(Row, Column); - 是否可以使用 libPNG 实现?

PNG 格式本身的设计使这成为不可能。

IDAT 块的内容(包含图像数据)使用流压缩器 zlib 进行压缩。如果不解压缩导致它的所有数据,就无法解压缩部分图像数据;此外,解压缩该数据将需要最多 44 kB (cf. "Memory Footprint") 的临时缓冲区。