【发布时间】:2012-08-18 22:25:00
【问题描述】:
我正在尝试加载内存占用有限的大型 JPEG 文件(数百兆像素)的一部分。我只需要大约 20000 的 1000 条扫描线。似乎 libjpeg(以及它的 fork libjpeg-turbo)的当前实现没有提供一种方法来跳过不需要的 19k 扫描线而不解码它们。有没有不深入研究 libjpeg 内部的解决方法?
【问题讨论】:
我正在尝试加载内存占用有限的大型 JPEG 文件(数百兆像素)的一部分。我只需要大约 20000 的 1000 条扫描线。似乎 libjpeg(以及它的 fork libjpeg-turbo)的当前实现没有提供一种方法来跳过不需要的 19k 扫描线而不解码它们。有没有不深入研究 libjpeg 内部的解决方法?
【问题讨论】:
您无法避免解码要跳过的扫描线,但您可以避免将它们存储在任何地方。当您从 libjpeg 获取每一行的回调时,只需等待行号与您想要的扫描线部分匹配即可。
【讨论】:
部分 JPEG 解码是在一年前在 jpeglib-turbo 中实现的。我没试过,但我想应该可以。
检查一下:
【讨论】: