libjpeg-turbo java编码jpeg

时间:2013-02-19 19:05:50

标签: java libjpeg-turbo turbojpeg

我在我的mac上安装了libjpeg-turbo,并将jar和lib添加到我的eclipse项目中。我试图从我的bufferedimage创建jpeg byte []:

TJCompressor tj = new TJCompressor();
tj.compress(image, TJ.PF_BGR);

我得到的错误是:java.lang.Exception:tjBufSize():无效的参数

我使用自定义机器人来创建TYPE_3BYTE_BGR类型的bufferedimage。我可以使用ImageIO创建一个byte [],但速度很慢。

我试图在java包装器上找到一些教程,但我发现任何编码来自bufferedimage的jpeg。如果有人能帮助我,我将非常感激。

1 个答案:

答案 0 :(得分:0)

您似乎将错误类型的参数传递给方法。当您应该从TJ类传递零个或多个标志(前缀为“FLAG_”)时,您将传递像素格式。 TJCompressor对象将自动检测像素格式类型。

在使用TJCompressor之前,请确保将色度子采样级别和JPEG质量设置为所需的级别。

示例代码:

TJCompressor tj = new TJCompressor();
tj.setJPEGQuality(75);
tj.setSubsamp(TJ.SAMP_420);
byte[] jpegBytes = tj.compress(image, 0);