繁体   English   中英

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

[英]Java read different type of image formats 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/

尝试在Google中使用“ ImageIO插件”。

JAI-ImageIO确实包含用于文件格式(例如TIFF)的插件,因此原则上您尝试执行的操作应该可行。 但是,仅安装JAI-ImageIO不足以将其添加到您的类路径中。 请参阅此处的完整安装说明: http : //java.sun.com/products/java-media/jai/INSTALL-jai_imageio_1_0_01.html

有关详细信息,我们可以看到类似的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 advanced image io也解决了该问题,但是很难维护在所有平台上安装。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM