【问题标题】:Decompress PNG directly to diskios-直接解压PNG到磁盘
【发布时间】:2013-08-20 16:04:05
【问题描述】:

我有一个大的 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);

【问题讨论】:

  • 我的 Java 库 PNGJ 在 Java 中做到了这一点。 code.google.com/p/pngj
  • 感谢 - 知道 c/c++/objective-c 的等效库吗?
  • 没有。但是使用 libpng,您应该能够做到这一点。

标签: ios png memory-mapped-files libpng high-resolution


【解决方案1】:

作为和想法如何开始:

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

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

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

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 2020-10-06
    • 2016-12-10
    • 2011-02-20
    相关资源
    最近更新 更多