【发布时间】:2013-05-22 23:29:53
【问题描述】:
我无法在我的 java 项目中获取 libjpeg-turbo 以实际压缩图像。它可以很好地写入 .jpg - 但结果的最终大小始终是例如几乎与相同图像的 24 位 windows .bmp 相同。一张 480x854 的图像会变成一个 1.2 兆字节的 jpeg,代码如下 sn-p。如果我使用 GREY 采样,它是 800Kb(而且这些图像一开始并不是花哨的图像 - 主要是中性背景,上面有一些填充的原色光盘,用于我正在开发的游戏)。
这是我目前得到的代码:
// 对于一些 RGB888 格式的 byte[] src,代表一个维度的图像 //“宽度”和“高度” 尝试 { TJCompressor tjc = 新的 TJCompressor( 源代码, 宽度 0, // "pitch" - 扫描线大小 高度 TJ.PF_RGB // 格式 ); tjc.setJPEGQuality(75); tjc.setSubsamp(TJ.SAMP_420); 字节[] jpg_data = tjc.compress(0); new java.io.FileOutputStream(new java.io.File("/tmp/dump.jpg")).write(jpg_data, 0, jpg_data.length); } 捕获(异常 e) { e.printStackTrace(System.err); }我很难找到这个项目的示例 java 使用文档;它主要假设 C 背景/用法。我不明白要传递给压缩的标志(我也不真正了解 jpeg 标准的内部结构,我也不想:)!
谢谢!
【问题讨论】:
标签: java libjpeg-turbo turbojpeg