加载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)发布于 2016-04-25 18:18:50
正如您在JRE的Java文档中所读到的:
返回一个BufferedImage,作为解码所提供的InputStream的结果,该ImageReader是从当前注册的ImageReader中自动选择的。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实现。它可以解码TIFF图像。注册这个ImageReader,这样ImageIO.read方法就可以将这个读取器确定为您的TIFF图像的读取器。
https://stackoverflow.com/questions/36837600
复制相似问题