1

我有一个大的 PNG,我想将它解压缩到一个文件中,但是我没有设备上的内存容量来将 PNG 在内存中扩展,然后再扩展为一个文件。

是否有本机 iOS 方法为每条扫描线解压缩 png?备择方案?

更新

libpng -读取图像数据- http://www.libpng.org/pub/png/libpng-1.2.5-manual.html#section-3.8

对于非隔行 PNG

png_read_rows(png_ptr, row_pointers, NULL, number_of_rows);

4

1 回答 1

0

作为和想法如何开始:

看看Java的png解压算法是怎么做的。Java 应该开源这些文件。也许有 iOS 太 idk。只要得到解压缩算法的想法。它应该是大约 1k-5k 行代码。

当您知道如何做时,比在 iOS 上实现但读取一个文件块而不是导出到一个文件,读取另一个块并处理并导出它。我知道这很容易说,至少在理论上它是有效的。也许在某些网站上是公开的。Libpng可以是一个很好的起点。

Png 是像 zip 一样的松散压缩。正如我所记得的那样,运行时构建了一个数据表。这些表取决于有多大,可能需要交换到磁盘,这会使解压过程更长。

祝你好运!

于 2013-08-18T22:11:07.337 回答