我无法通过使用具有LZW压缩技术的jai编解码器API读取tiff文件。
以下我用来渲染tiff图像的行。
PlanarImage pImage = new NullOpImage(renderedImage,null,null,OpImage.OP_IO_BOUND); firstImage = pImage.getAsBufferedImage();
例外情况如下。
java.lang.IllegalArgumentException: The input argument(s) may not be null.
at javax.media.jai.PlanarImage.wrapRenderedImage(PlanarImage.java:582)
at javax.media.jai.NullOpImage.<init>(NullOpImage.java:108)
显示java.lang.NullPointerException at com.sun.media.jai.codecimpl.TIFFLZWDecoder.addStringToTable(TIFFLZWDecoder.java:180) 在com.sun.media.jai.codecimpl.TIFFLZWDecoder.decode(TIFFLZWDecoder.java:109) 在com.sun.media.jai.codecimpl.TIFFImage.getTile(TIFFImage.java:1565) 在javax.media.jai.RenderedImageAdapter.getTile(RenderedImageAdapter.java:156) 在javax.media.jai.NullOpImage.computeTile(NullOpImage.java:170) 在com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:912) 在javax.media.jai.OpImage.getTile(OpImage.java:1139) 在javax.media.jai.PlanarImage.copyData(PlanarImage.java:2356) 在javax.media.jai.PlanarImage.getAsBufferedImage(PlanarImage.java:2538) 在javax.media.jai.PlanarImage.getAsBufferedImage(PlanarImage.java:2559)
请建议我。
答案 0 :(得分:0)
我知道这是一个老问题,但希望这将有助于将来...我只能通过手动下载JAI JAR以及此处找到的libclib_jiio.so来解决此问题https://github.com/roundwheel/photomosaic/tree/master/PhotoMosaicCore/lib/jai ,并直接在我的项目pom.xml中引用这些JAR:
<dependency>
<groupId>javax.media.jai</groupId>
<artifactId>javax.media.jai.core</artifactId>
<version>1.1.3</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/jai/jai_core.jar</systemPath>
</dependency>
<dependency>
<groupId>com.sun.media.jai</groupId>
<artifactId>com.sun.media.jai.codec</artifactId>
<version>1.1.3</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/jai/jai_codec.jar</systemPath>
</dependency>
<dependency>
<groupId>com.sun.media.imageio</groupId>
<artifactId>com.sun.media.imageio</artifactId>
<version>1.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/jai/jai_imageio.jar</systemPath>
</dependency>
<dependency>
<groupId>com.sun.media</groupId>
<artifactId>clibwrapper_jiio</artifactId>
<version>1.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/jai/clibwrapper_jiio.jar</systemPath>
</dependency>
问题似乎是Maven存储库中缺少clibwrapper_jiio JAR(点击此处https://mvnrepository.com/artifact/com.sun.media/clibwrapper_jiio/1.1中的“下载JAR”)。