我在将 .HEIC 图像转换为 jpeg 时遇到问题。 .HEIC 文件是使用运行最新 iOS 公共测试版的 iPhone 拍摄的图像。我正在使用诺基亚提供的库 https://github.com/nokiatech/heif/要解析文件并从 .HEIC 文件中提取图像图块,请将它们转换为 jpeg 并使用 ffmpeg/montage 将它们粘合在一起。
代码有点太多,无法将其全部粘贴到这个问题中,所以我将所有代码都放在这个中github 仓库 https://github.com/Kimbsen/heiftest。它非常不言自明,并且应该只需几个依赖项即可运行。它们在存储库的自述文件中进行了解释。顺便说一句,这一切都是在 osx 上完成的。
.HEIC 文件包含 8x6 图像网格(图块),如果将它们放在一起,您将获得完整的图像。简而言之,我输入的第 7 个图块的任何图像都已损坏,如下所示,我真的不明白为什么。我已经向诺基亚提出了问题,但该存储库似乎已经死了,我真的不希望在那里得到答案。
第 7 个图块中的 VPS/SPS/PPS 参数设置存在错误。我尚未确定问题出在实际文件中还是 HEIF 解析器中,但同时有一个简单的解决方法。
请参阅 HevcImageFileReader::getItemDataWithDecoderParameters 并观察它如何将参数集添加到每个图块的实际项目数据之前。
您所需要做的就是读取第一个图块的参数集并将其重新用于后续图块,而不是重新读取它们。这将解决来自第七个图块的损坏参数。这样做似乎是安全的,因为这是一种网格格式,并且要求每个图块都相同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)