【问题标题】:Disable Java ImageIO Chroma Subsampling禁用 Java ImageIO 色度二次采样
【发布时间】:2012-12-18 10:54:37
【问题描述】:

我正在尝试使用 ImageIO 将 BufferedImage 保存为 JPEG。但是,即使使用 100 质量进行保存,由于色度子采样,我也会遭受质量损失。

我已通过恢复到较旧的 JAI 库并将水平和垂直二次采样显式设置为 1 成功解决了此问题。 然而,一个关键要求是我将图像保存为渐进式,JAI 似乎不支持。

有没有办法使用较新的 ImageWriter 禁用子采样?

提前致谢

如果可能,我想避免使用 ImageMagick

【问题讨论】:

  • 经过广泛搜索图像写入/质量/压缩问题。 “使用 ImageMagick”似乎是一个常见的答案。理想情况下,我想知道这在 Java 中是否可行,然后再走 ImageMagick 路线。我不反对第三方库,只要它们是轻量级和可靠的。
  • 感谢您的澄清。也许该信息应该是edited 进入问题。

标签: java image javax.imageio jai subsampling


【解决方案1】:

阅读JPEG Metadata Format Specification and Usage Notes 似乎表明可以通过使用自定义IIOMetadata 编写图像来实现。

在互联网上搜索会出现https://codereview.appspot.com/3082041/patch/204004/210007,它似乎正是以这种方式使用 ImageIO。

我没有尝试过,不知道它是否真的有效。

【讨论】:

  • 非常感谢您。我已经设法通过使用 IIOMetadata 使其工作,与旧的 JAI 相比,性能令人震惊,但现在可以了。
猜你喜欢
  • 2020-03-20
  • 2018-03-17
  • 1970-01-01
  • 2011-01-13
  • 1970-01-01
  • 2020-03-05
  • 2016-05-31
  • 2022-01-06
  • 1970-01-01
相关资源
最近更新 更多