jai codec api无法用lzw压缩读取tiff

时间:2016-04-22 12:30:36

标签: compression lzw

我无法通过使用具有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)

请建议我。

1 个答案:

答案 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”)。