我需要将一个 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();
最佳答案
您正在尝试读取 ImageIO 不支持的文件格式。
正如 johnchen902 所指出的,ImageIO.getReaderFileSuffixes()
返回支持的后缀列表。 tiff 不在该列表中。这就是为什么你不能那样读。一些外部库可能会对您有所帮助。
例如:Java Advanced Imaging API 支持 TIFF。详情 here .
关于java - 将 tiff 转换为缓冲图像 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17524062/