我在我的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。如果有人能帮助我,我将非常感激。
答案 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);