我正在尝试阅读一些图像文件jpg,tif,gif,png,需要保存文件和创建图标。
我得到了UnsupportedTypeException
。
ImageIO.read(file);
如果我使用以下行,如前面的表格所述。
BufferedImage img = JPEGCodec.createJPEGDecoder(inputStream).decodeAsBufferedImage();
我得到JPEGCodec
无法找到符号。
我使用的是netbean 7.0.1。我还添加了jai-imageio.jar。
答案 0 :(得分:0)
默认情况下,如果我没记错的话,ImageIO只能读取JPG,GIF和PNG文件格式。要添加像TIFF这样的新格式,您需要在类路径中添加一个插件(jar文件),并在尝试读取文件之前为您的代码添加一个ImageIO.scanForPlugins()。
插件示例:
http://ij-plugins.sourceforge.net/plugins/imageio/
在Google中尝试“ImageIO插件”。
答案 1 :(得分:0)
JAI-ImageIO确实包含了像TIFF这样的文件格式的插件,所以原则上你要做的就是应该工作。但是,要安装JAI-ImageIO,仅将它添加到类路径是不够的。请参阅此处的完整安装说明:http://java.sun.com/products/java-media/jai/INSTALL-jai_imageio_1_0_01.html
答案 2 :(得分:0)
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也解决了这个问题,但很难维护安装在所有平台上。