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”

java 实现图片水印

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

windows 10上源码编译libjpeg-turbo和使用教程 | compile and use libjpeg-turbo on windows 10