我在加载TIFF图像时遇到问题。
我使用ImageIO.read(Test.class.getResourceAsStream(url))
来读取图像,使用JPEG它可以完美地工作,但是使用TIFF图像我得到NullPointerException
。 JPEG图像和TIFF图像位于同一文件夹中。
编辑:Stacktrace
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)
答案 0 :(得分:0)
正如您可以阅读JRE的Java Docs:
作为解码提供的结果返回BufferedImage 从这些中自动选择ImageReader的InputStream 目前已注册。 InputStream包含在 ImageInputStream中。如果没有注册的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 Impl。它可以解码TIFF图像。注册此ImageReader,以便ImageIO.read方法可以将此阅读器确定为TIFF图像的阅读器。