android - 如何使用 libjpeg-turbo 解码 JPEG9 图像?

标签 android c++ opencv jpeg

我正在使用 Android 6.0 进行一些开发。现在我想使用 libjpeg-turbo 以 native c++ 代码解码相机拍摄的 JPEG 图像(JPEG9 图像)。但是,libjpeg-turbo 只能支持 JPEG 8。因此 libjpeg-turbo 给出错误“错误的 jpeg 库版本”。任何人都知道如何解决这个问题?

事实上,现在我正在使用OpenCV 函数imdecode 来完成这项工作,但是速度太慢了。有人说 OpenCV 在 imdecode 和 imencode 中使用 libjpeg。是真的吗?

如果我不能使用 libjpeg-turbo,我还能使用什么来高效解码和编码 JPEG9 图像?

感谢任何帮助!

最佳答案

Libjpeg-turbo 故意不支持带有 libjpeg v9 fork 扩展的图像,因为它们是非标准的,并且不提供比来自 libjpeg 标准版本的图像更好的压缩:

https://libjpeg-turbo.org/About/Jpeg-9

所以答案是您无法解码它们。您可以做的最好的事情就是避免使用 libjpeg v9,或者如果必须,请务必禁用所有 SmartScale 扩展以生成 JPEG 兼容文件。

关于android - 如何使用 libjpeg-turbo 解码 JPEG9 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40762933/

相关文章:

android - Android 上偶尔出现 java.lang.NoClassDefFoundError

android - Fedora命令行使用android sdk安装eclipse

c++ - 涉及文字的比较安全吗?

c++ - ifstream 不会在下一次迭代中打开文件

python - 从 Python 使用 OpenCV 的图像哈希模块

python - 如何使用 OpenCV 和 Python 将视频与引用视频进行比较?

java - 如何重新抛出异常

java - 使用 FirebaseUI 在 Android TextView 中绑定(bind)嵌套的 JSON

c++ - Qt5 和 CMAKE_AUTORCC

c++ - DisplayImage.cpp 错误 将 OpenCV 与 gcc 和 CMake 结合使用