嘿, 每當我試着用ImageIO.createImageInputStream
它只是返回null
沒有例外,警告或錯誤,以得到一個ImageInputStream
對象。我曾嘗試將不同的數據類型傳遞給函數,簡單的File
和InputStream
,但都返回null
也。該文檔說,如果找不到合適的ImageInputStreamSpi
,那麼該函數將返回null
,但該文件是一個bog標準的JPEG格式,並且肯定Java會隨服務提供商提供這種開箱即用的格式? 謝謝你的時間。ImageIO.createImageInputStream保持返回NULL
/**
* Reads in an image from a file and returns the image in a
* {@code BufferedImage} object.
*
* @param source the file to create the {@code BufferedImage}
* from.
* @return the {@code BufferedImage} object representing the image
* in {@code source}.
*/
private BufferedImage readImage(File source) {
// There is only one image in this file
final int imageIndex = 0;
BufferedImage image = null;
try {
// Get the ImageReader object for this filetype
Iterator readers =
ImageIO.getImageReaders(source);
ImageReader reader = (ImageReader) readers.next();
// Create an ImageInputStream object from the source image file
ImageInputStream iis = ImageIO.createImageInputStream(source);
// Raises IllegalArgumentException, because iis is null
reader.setInput(iis, true);
// Read the image file
image = reader.read(imageIndex);
} catch (Exception exception) {
exception.printStackTrace();
System.exit(-1);
}
return image;
}
以及清潔你的代碼,並張貼在這裏,所以我們可以幫助:) – FearUs 2011-02-27 00:13:10
除此之外,你沒有回答我的問題,你只要給我一個不同的解決方案,我是已在使用之前,詳細如下...我的原始問題,我仍然遇到麻煩,仍然沒有答案... – 2011-02-27 09:42:38
我有同樣的問題。由於某種原因,它可以在Eclipse中在MacOSX 1.6上運行,但是在Debian Linux環境下生產失敗。我的應用程序是建立在Equinox和Jetty servlet容器上的基於OSGI的web應用程序。從我讀到目前爲止,它似乎與JAI和OSGI(http://stackoverflow.com/questions/1493199/running-jai-in-osgi)有關。但我還沒有解決它。 – Christoph 2012-07-08 15:37:53