libjpeg-turbo java 编码 jpeg
Posted
技术标签:
【中文标题】libjpeg-turbo java 编码 jpeg【英文标题】:libjpeg-turbo java encode jpeg 【发布时间】:2013-02-19 19:05:49 【问题描述】:我在我的 Mac 上安装了 libjpeg-turbo,并将 jar 和库添加到我的 eclipse 项目中。我试图从我的缓冲图像创建 jpeg byte[]:
TJCompressor tj = new TJCompressor();
tj.compress(image, TJ.PF_BGR);
我得到的错误是:java.lang.Exception: tjBufSize(): Invalid argument
我使用自定义机器人创建类型为 TYPE_3BYTE_BGR 的缓冲图像。我可以使用 ImageIO 创建一个 byte[],但速度很慢。
我试图找到一些关于 java 包装器的教程,但我没有找到任何从缓冲图像编码 jpeg 的教程。如果有人可以帮助我,我将不胜感激。
【问题讨论】:
【参考方案1】:您似乎向方法中传递了错误类型的参数。当您应该从TJ
类(以“FLAG_”为前缀)传递零个或多个标志时,您传递的是像素格式。像素格式类型将由TJCompressor
对象自动检测。
在使用 TJCompressor
之前,请确保将色度二次采样级别和 JPEG 质量设置为您想要的级别。
示例代码:
TJCompressor tj = new TJCompressor();
tj.setJPEGQuality(75);
tj.setSubsamp(TJ.SAMP_420);
byte[] jpegBytes = tj.compress(image, 0);
【讨论】:
以上是关于libjpeg-turbo java 编码 jpeg的主要内容,如果未能解决你的问题,请参考以下文章
如何让 libjpeg-turbo 的 java 包装器实际压缩?
windows7 64位机上,libjpeg-turbo的安装和使用
JPE:尝试在空对象引用上调用虚拟方法“android.content.res.Resources”
如何使用 libjpeg-turbo 解码 JPEG9 图像?
windows 10上源码编译libjpeg-turbo和使用教程 | compile and use libjpeg-turbo on windows 10