11

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

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

我确定 myFile 已正确实例化:问题是在第四行代码之后 img 仍然为空。

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

编辑

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

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();
4

1 回答 1

7

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

正如 johnchen902 所指出的,ImageIO.getReaderFileSuffixes()返回支持的后缀列表。tiff 不在该列表中。这就是为什么你不能那样读它的原因。一些外部库可能会对您有所帮助。例如:Java Advanced Imaging API 支持 TIFF。详情在这里

于 2013-07-08T10:19:15.260 回答