【问题标题】:Java: Can't read Tiff image file [duplicate]Java:无法读取 Tiff 图像文件 [重复]
【发布时间】:2017-06-10 16:05:51
【问题描述】:

我正在尝试从相对路径读取图像:

String fp = "../resources/img/wc/text/039.tiff";

以下代码成功:

File fi = new File(getClass().getResource(fp).getPath());
System.out.println("fi: " + fi);
if (fi.exists() && !fi.isDirectory()) {
    System.out.println("file exists");  // <-- console prints this
}

try {
    img = ImageIO.read(getClass().getResource(fp));
    System.out.println("file read");  // <-- console prints this
} catch (IOException e) {
    e.printStackTrace();
}

...但后面的代码如下:

System.out.println(img.getType());

...失败,报告:

Exception in thread "main" java.lang.NullPointerException
at com.ddc.fmwscanner.java.LoadImageApp.ddNextImage(LoadImageApp.java:60)
at com.ddc.fmwscanner.java.LoadImageApp.<init>(LoadImageApp.java:85)
at com.ddc.fmwscanner.main.FmwScanner.main(FmwScanner.java:15)

我知道图像是有效的,因为我可以使用非 Java 方法打开它。但是,这些方法不会从 .jar 中打开图像,所以我需要使用纯 Java 方法。

感谢任何见解。

【问题讨论】:

  • 您的路径可能不正确。了解资源从类路径开始,即类文件的位置。
  • 如何验证不正确的路径? (呃,不能在这些 cmets 中轻松发布代码。)以下内容:System.out.println(getClass().getResource(fp).getPath()); 返回绝对正确的绝对路径。
  • 不要将类路径资源视为文件。资源是从类路径加载的。文件从文件系统加载。资源路径可能不包含 .. 阅读 javadoc。
  • 嗯,也许,@IlarioPierbattista。我会用 .jpg 试试。
  • @IlarioPierbattista:perhaps a better duplicatethis one

标签: java tiff


【解决方案1】:

这最终导致在纯 Java 中加载 .tiff 文件时出现问题。安装TwelveMonkeys ImageIO plugin 就成功了。再次感谢@IlarioPierbattista,他指导我找到解决方案!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-16
    • 1970-01-01
    • 1970-01-01
    • 2017-07-01
    相关资源
    最近更新 更多