4

我无法将 .HEIC 图像转换为 jpeg。.HEIC 文件是使用运行最新 ios 公共测试版的 iphone 拍摄的图像。我正在使用诺基亚提供的库来解析文件并从 .HEIC 文件中提取图像图块,将它们转换为 jpeg 并使用 ffmpeg/montage 将它们粘合在一起。

有太多代码无法将其全部粘贴到这个问题中,所以我将所有代码都放在了这个github repo中。它非常不言自明,应该只需几个依赖项即可运行。它们在 repo 的 README 中进行了解释。这一切都是在osx btw上完成的。

.HEIC 文件包含一个 8x6 的图像网格(图块),如果将它们放在一起,您将获得完整的图像。只需将我输入的第 7 个图块的任何图像都损坏,如下所示,我真的不明白为什么。我已经向诺基亚提出了一个问题,但回购似乎已经死了,我真的不期待那里有答案。

4

1 回答 1

7

第 7 个图块中的 VPS/SPS/PPS 参数集存在错误。我还没有找到问题出在实际文件中还是在 HEIF 解析器中,但同时有一个简单的解决方法。

请参阅 HevcImageFileReader::getItemDataWithDecoderParameters 并观察它如何将参数集添加到每个图块的实际项目数据中。

您需要做的就是读取第一个图块的参数集并将它们重用于后续图块,而不是重新读取它们。这将解决来自第 7 个图块的损坏参数。这样做似乎很安全,因为这是一种网格格式,并且要求每个图块都相同。

于 2017-08-04T18:18:24.807 回答