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



我正在尝试读取一些图像文件jpg、tif、gif、png,需要保存文件并创建图标。我得到了UnsupportedTypeException

ImageIO.read(file);

如果我使用以下行,就像前面在表格中讨论的那样。

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/

试试谷歌的"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<ImageReader> 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也解决了这个问题,但很难在所有平台上安装。

相关内容

  • 没有找到相关文章

最新更新