【问题标题】:Java load TIFF with getResourceAsStream [duplicate]Java使用getResourceAsStream加载TIFF [重复]
【发布时间】:2016-04-25 10:10:26
【问题描述】:

我在加载 TIFF 图像时遇到问题。 我使用ImageIO.read(Test.class.getResourceAsStream(url)) 读取图像,使用JPEG 可以完美运行,但是使用TIFF 图像我得到NullPointerException。 JPEG 图像和 TIFF 图像在同一个文件夹中。

编辑:堆栈跟踪

java.lang.NullPointerException 
    at de.test.test1.files.Konstantenbeleg.<init>(Konstantenbeleg.java:47) 
    at de.test.test1.files.Konstantenbeleg.<init>(Konstantenbeleg.java:72)
    at de.de.test.test1.worker.zv.WorkerZVDZService. sendFiles(WorkerZVDZService.java:119)
    at de.de.test.test1.worker.zv.WorkerZV.workJob(WorkerZV.java:73)
    at de.de.test.test1.listener.action.scan. MyScanJobListener.finalzeScan(MyScanJobListener.java:65)
    at de.de.test.test1.listener.action.scan. MyScanJobListener.scanJobNoMoreEvents(MyScanJobListener.java:156)
    at jp.co.ricoh.dsdk.core.function.ScanJobImpl.fire(Unknown Source)
    at jp.co.ricoh.dsdk.core.function.ScanJobImpl.access$200(Unknown Source)
    at jp.co.ricoh.dsdk.core.function.ScanJobImpl$JobEventHandler.exec(Unknown Source)
    at jp.co.ricoh.dsdk.core.manager.EventRunner$Dispatcher.processEvent(Unknown Source)
    at jp.co.ricoh.dsdk.core.manager.EventRunner$Dispatcher.run(Unknown Source)

【问题讨论】:

  • 你的堆栈跟踪在哪里?您是从 ImageIO.read() 调用中获得 NullPointerException 还是其他行? @ReneM 很可能是正确的,您需要安装 TIFF ImageReader 插件,但问题中没有足够的细节可以确定。

标签: java nullpointerexception inputstream tiff javax.imageio


【解决方案1】:

您可以在 JRE 的 Java 文档中阅读:

返回一个 BufferedImage 作为解码提供的结果 带有 ImageReader 的 InputStream 从这些中自动选择 目前已注册。 InputStream 包装在一个 图像输入流。如果没有注册的 ImageReader 声称能够 读取结果流,返回 null。

来源:https://docs.oracle.com/javase/7/docs/api/javax/imageio/ImageIO.html#read(java.io.InputStream)

如果没有为所需格式注册 ImageReader,此方法将返回 null。

正如我所见,标准 JRE API 中没有包含 TIFF 图像阅读器。 经过一番谷歌搜索后,我发现了这个: http://download.java.net/media/jai-imageio/javadoc/1.1/com/sun/media/imageio/plugins/tiff/package-summary.html

您的问题的教育答案是:

获取 ImageReader 实现。它可以解码 TIFF 图像。注册此 ImageReader,以便 ImageIO.read 方法可以将此阅读器确定为您的 TIFF 图像的阅读器。

【讨论】:

  • 注册这个 ImageReader 是什么意思?我的项目中有 lib JAI 和 lib 插件 imageio-tiff。如果我尝试使用 toString() 方法,我会得到 Nullpointer。
猜你喜欢
  • 2018-05-16
  • 2016-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多