我目前正在使用ImageIO在Java中编写图像转换器。不幸的是,ImageIO不支持多种格式。 javadoc说它可以用插件扩展但我找不到任何东西。我尝试过JAI(Java高级成像),但它似乎是一个全新的库,而不仅仅是一个插件。
您是否了解如何使ImageIO支持更多格式?
答案 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:
AFAIU,JAI为“普通”ImageIO
不支持的其他格式提供SPI。
有关详细信息,请参阅JavaTM Image I/O Technology。