0

我已经在我的 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 的教程。如果有人可以帮助我,我将不胜感激。

4

1 回答 1

0

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

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

示例代码:

TJCompressor tj = new TJCompressor();
tj.setJPEGQuality(75);
tj.setSubsamp(TJ.SAMP_420);
byte[] jpegBytes = tj.compress(image, 0);
于 2013-05-08T17:25:39.263 回答