我需要将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();
答案 0 :(得分:7)
您正在尝试读取ImageIO不支持的文件格式。
正如johnchen902指出的那样,ImageIO.getReaderFileSuffixes()
返回支持的后缀列表。 tiff不在该列表中。这就是你无法以这种方式阅读的原因。一些外部图书馆可能会帮助你。
例如:Java Advanced Imaging API支持TIFF。详情here。