Java: 无法读取 Tiff 图像文件
Java: Can't read Tiff image file
我正在尝试从相对路径读取图像:
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 方法。
如有任何见解,我们将不胜感激。
这最终成为在纯 Java 中加载 .tiff 文件的问题。安装 TwelveMonkeys ImageIO plugin 就成功了。再次感谢,特别是@IlarioPierbattista,他指导我找到了解决方案!
我正在尝试从相对路径读取图像:
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 方法。
如有任何见解,我们将不胜感激。
这最终成为在纯 Java 中加载 .tiff 文件的问题。安装 TwelveMonkeys ImageIO plugin 就成功了。再次感谢,特别是@IlarioPierbattista,他指导我找到了解决方案!