使用BufferedImage和JAI从文件中读取TIFF图像

Kyl*_*rio 2 java tiff jai javax.imageio

我正在尝试使用BufferedImage从文件中读取TIFF图像.以下是我的代码:

String filename = "/image/parrot.tiff";
File f = new File (filename);
try{
        BufferedImage img = ImageIO.read(f);
}catch (Exception e){
        System.out.println("Something went wrong!");
}
Run Code Online (Sandbox Code Playgroud)

但它没有用.我有一个名为testInput的方法来测试文件是否被正确读取:

public void testInput(){
    System.out.println(f.exists());
    System.out.println(f.canRead());
    System.out.println(f.canWrite());
}*/
Run Code Online (Sandbox Code Playgroud)

他们三个总是返回"false",上面的代码总是返回"出错了!".我已经为插件添加了JAI ImageIO来读取TIFF图像.知道什么似乎是问题吗?

pli*_*nth 5

你需要确保你准备好了JAI.JAI是ImageIO的插件扩展,如果不存在,则无法解码TIFF.这是一个快速的单元测试:

@Test
public void canGetTiffDecoder()
{
    Iterator<ImageReader> reader = ImageIO.getImageReadersByFormatName("TIFF");
    assertNotNull(reader);
    assertTrue("No tiff decoder", reader.hasNext());
}
Run Code Online (Sandbox Code Playgroud)