Java读取不同类型的图像格式jpg,tif,gif,png

我试图读取一些图像文件jpg,tif,gif,png,需要保存文件和创建图标。 我得到UnsupportedTypeException

 ImageIO.read(file); 

如果我使用以下行,如前面的forms讨论。

 BufferedImage img = JPEGCodec.createJPEGDecoder(inputStream).decodeAsBufferedImage(); 

我得到JPEGCodec找不到符号。

我使用的是netbean 7.0.1。 我还添加了jai-imageio.jar。

默认情况下,如果我没记错的话,ImageIO只能读取JPG,GIF和PNG文件格式。 要添加像TIFF这样的新格式,您需要在类路径中添加一个插件(jar文件),并在尝试读取文件之前向您的代码添加ImageIO.scanForPlugins()。

插件示例:

http://ij-plugins.sourceforge.net/plugins/imageio/

在Google中尝试“ImageIO插件”。

JAI-ImageIO确实包含了像TIFF这样的文件格式的插件,所以原则上你要做的就是应该工作。 但是,要安装JAI-ImageIO,仅将它添加到类路径是不够的。 请参阅此处的完整安装说明: http : //java.sun.com/products/java-media/jai/INSTALL-jai_imageio_1_0_01.html

Fr细节,我们可以看到像http://www.randelshofer.ch/blog/2011/08/reading-cmyk-jpeg-images-with-java-imageio/

 Image img = null; ImageInputStream iis = new FileImageInputStream(file); try { for (Iterator i = ImageIO.getImageReaders(iis); img == null && i.hasNext(); ) { ImageReader r = i.next(); try { r.setInput(iis); img = r.read(0); } catch (IOException e) {} } } finally { iis.close(); } return img; 

Java高级映像io也解决了这个问题,但很难维护安装在所有平台上。