将tiff转换为bufferedimage(Java)

时间:2013-07-08 10:11:07

标签: java file bufferedimage tiff javax.imageio

我需要将tiff文件转换为BufferedImage。我写了以下代码:

String filepath = "C:\\tiffFolder\\";
String filename = "myTiffImage.tif";
File myFile = new File (filepath + filename); 
BufferedImage img = ImageIO.read(myFile);

我确信myFile是正确实例化的:问题是在第四行代码后img仍为null。

我做错了什么? 非常感谢!

修改

解决了,我使用了以下代码:

FileSeekableStream stream = new FileSeekableStream(filepath + filename);
TIFFDecodeParam decodeParam = new TIFFDecodeParam();
decodeParam.setDecodePaletteAsShorts(true);
ParameterBlock params = new ParameterBlock();
params.add(stream);
RenderedOp image1 = JAI.create("tiff", params);
BufferedImage img = image1.getAsBufferedImage();

1 个答案:

答案 0 :(得分:7)

您正在尝试读取ImageIO不支持的文件格式。

正如johnchen902指出的那样,ImageIO.getReaderFileSuffixes()返回支持的后缀列表。 tiff不在该列表中。这就是你无法以这种方式阅读的原因。一些外部图书馆可能会帮助你。 例如:Java Advanced Imaging API支持TIFF。详情here