2

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

ImageIO.read(file);

如果我使用以下行,如前面在形式中讨论的那样。

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

我得到JPEGCodec找不到符号。

我正在使用 netbean 7.0.1。我还添加了 jai-imageio.jar。

4

3 回答 3

0

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

插件示例:

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

在 Google 中尝试“ImageIO 插件”。

于 2012-02-02T11:20:51.837 回答
0

JAI-ImageIO 确实包含用于 TIFF 等文件格式的插件,因此原则上您尝试做的事情应该可以工作。但是,要安装 JAI-ImageIO,将它添加到您的类路径是不够的。在此处查看完整的安装说明:http: //java.sun.com/products/java-media/jai/INSTALL-jai_imageio_1_0_01.html

于 2012-02-02T11:38:37.440 回答
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 也解决了这个问题,但很难在所有平台上安装。

于 2012-02-06T06:35:15.310 回答