如何使ImageIO支持更多格式

时间:2013-06-10 10:08:23

标签: java plugins converter javax.imageio

我目前正在使用ImageIO在Java中编写图像转换器。不幸的是,ImageIO不支持多种格式。 javadoc说它可以用插件扩展但我找不到任何东西。我尝试过JAI(Java高级成像),但它似乎是一个全新的库,而不仅仅是一个插件。

您是否了解如何使ImageIO支持更多格式?

2 个答案:

答案 0 :(得分:7)

ImageIO使用服务提供程序API,大多数插件都是一个简单放在classpath中的jar。 ImageIO会自动拾取它们。

如果列出需要支持的格式,可能更容易给出好的答案。

如上所述,JAI添加了一些格式支持(请注意,您需要jai-imageio.jar,而不是完整的JAI包)。警告:其中许多都需要本机库支持很有用,而且Oracle的项目似乎处于不稳定状态。

我写过a couple of plugins(主要是读者),这将扩展支持的格式数量(最值得注意的是TIFF,PSD(Photoshop)和PICT,以及扩展的JPEG支持)。

jrawio是另一个很好的例子(如评论中所述),如果您需要相机RAW文件支持。

谷歌搜索带来了更多。正如我所说,这一切都取决于你需要的格式。

答案 1 :(得分:2)

javax.imageio格式支持基于服务提供者接口。 SPI只是一个特殊的Jar:

  1. 提供用于解码/编码图像的类。
  2. 将文件放在Jar中的某个位置,以识别执行编码的类。解码。
  3. AFAIU,JAI为“普通”ImageIO不支持的其他格式提供SPI。

    有关详细信息,请参阅JavaTM Image I/O Technology