如何在IntelliJ插件中使用jai-imageio

时间:2015-02-15 18:17:22

标签: java image-processing intellij-idea tesseract jai

我正在为intelliJ开发一个插件。

这需要使用tesseract。当我将其作为控制台应用程序执行时,它可以正常工作。

但是当我尝试执行插件时,我得到以下异常,

SEVERE: Need to install JAI Image I/O package.
https://java.net/projects/jai-imageio/
java.lang.RuntimeException: Need to install JAI Image I/O package.
https://java.net/projects/jai-imageio/
    at net.sourceforge.vietocr.ImageIOHelper.getImageByteBuffer(ImageIOHelper.java:254)

在以下声明中

 final TIFFImageWriteParam tiffWriteParam = new TIFFImageWriteParam(Locale.US);

        tiffWriteParam.setCompressionMode(ImageWriteParam.MODE_DISABLED);

        // Get tif writer and set output to file
        final Iterator<ImageWriter> writers =  ImageIO.getImageWritersByFormatName(TIFF_FORMAT);

        if (!writers.hasNext()) {
            throw new RuntimeException(JAI_IMAGE_WRITER_MESSAGE);
        }

ImageIO.getImageWritersByFormatName返回null

我可以将它作为控制台应用程序执行,但是当我尝试作为intelliJ的插件执行时,它会失败。

任何人都可以指导如何在IntelliJ插件中使用jai-image io。

此致 Siva N B

2 个答案:

答案 0 :(得分:0)

看起来你对Intellij和你的控制台有不同的classpathes。由于缺少java-imageio,Intellij版本无法读取tiff文件。您可以查看here来查找jar,或者可以更容易地查看控制台类路径中哪些jar文件缺少intellij。

编辑:更多细节。 java imageio lib需要一个插件来读取tiff和bmp文件。该插件通常不与lib捆绑在一起。找到正确的罐子通常很痛苦。

答案 1 :(得分:0)

我们需要将jai_codec.jar,jai_core.jar和jai_imageio.jar添加到jre的ext文件夹中。

创建插件时,类路径与控制台不同。

我按照以下链接, https://www.java.net/node/683477