【问题标题】:libjpeg-turbo java encode jpeglibjpeg-turbo java 编码 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 的教程。如果有人可以帮助我,我将不胜感激。

【问题讨论】:

    标签: java libjpeg-turbo turbojpeg


    【解决方案1】:

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

    在使用 TJCompressor 之前,请确保将色度二次采样级别和 JPEG 质量设置为您想要的级别。

    示例代码:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 1970-01-01
      • 2016-11-18
      相关资源
      最近更新 更多