java - 压缩:在Java/Scala中以指定比特率保存JPEG图像

标签 java scala compression jpeg

我有兴趣保存 JPEG 图像,以便可以指定用于以压缩形式对所有像素进行编码的总位数。例如,如果我有一个大小为 1024 x 1024 的 4 channel 图像,则对不压缩的位进行编码将需要 4 * 8 * 1024 * 1024 位。使用压缩,可以使用更少的比特。我想指定压缩形式的位数。

迭代解决方案是对 JPEG 压缩质量参数进行二分搜索。我希望能有 Java 或 Scala 的直接解决方案。

最佳答案

正如 @Chris 所说,JPEG 没有捷径。然而 - 我意识到这是一个远景 - 如果您愿意使用 JPEG2000 而不是 JPEG,您可以直接指定压缩率。如果你看Encoder在此类JJ2000 library ,您将了解如何修复编码图像的比特率。

不幸的是,由于 JPEG2000 支持远不如 JPEG 广泛,我担心这对您来说可能没有多大用处。

关于java - 压缩:在Java/Scala中以指定比特率保存JPEG图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10538820/

相关文章:

java - 如何将 $concat 与 $cond 与 MongoDB Java 驱动程序一起使用

java - Array.toString(boolean) 值

algorithm - LZW解压算法

hadoop - 压缩RC表 hive

使用 zlib 在 C 中压缩整数数组

java - 如何在 Android java 中将 jpg 转换为 pdf

java - JTable 模型监听器过早检测到插入的行(在绘制之前)

scala - 使用 scala-dispatch 的 multipart/form-data

scala - 如何在 sbt 中检测 JavaFX 运行时 jar

scala - 从一个列表中提取不在另一个列表中的元素