当前位置: 首页 > 知识库问答 >
问题:

如何修复“无法读取JPEG2000图像:未安装Java高级图像(JAI)图像I/O工具”

傅阳炎
2023-03-14

我正在建立一个java项目,使用pdfBox从PDF中获取图像。由于我使用tika应用程序实现其他功能,我决定使用tika-app-1.20中的pdfBox。罐子

我以前尝试过包括jai-imageio-core-1.3.1.jar,因为Tika-app已经与这个罐子捆绑在一起了。我单独尝试了tika-app jar。

这条线是投掷错误

PDXObject对象=资源。getXObject(cosName)

错误的日志跟踪:

org.apache.pdfbox.filter.MissingImageReaderException: Cannot read JPEG2000 image: Java Advanced Imaging (JAI) Image I/O Tools are not installed
    at org.apache.pdfbox.filter.Filter.findImageReader(Filter.java:163)
    at org.apache.pdfbox.filter.JPXFilter.readJPX(JPXFilter.java:115)
    at org.apache.pdfbox.filter.JPXFilter.decode(JPXFilter.java:64)
    at org.apache.pdfbox.cos.COSInputStream.create(COSInputStream.java:77)
    at org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:175)
    at org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:163)
    at org.apache.pdfbox.pdmodel.common.PDStream.createInputStream(PDStream.java:236)
    at org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.<init>(PDImageXObject.java:140)
    at org.apache.pdfbox.pdmodel.graphics.PDXObject.createXObject(PDXObject.java:70)
    at org.apache.pdfbox.pdmodel.PDResources.getXObject(PDResources.java:426)

但我很确定我在tika有jai imageio core,当我运行代码时,它是不可见的。


共有2个答案

宓季同
2023-03-14

碰巧它需要一个名为jai-imageio-jpeg2000的额外jar来支持jp2k图像。

东门令
2023-03-14

实际上,我也偶然发现了这个错误,但是在这里的PDFBox留档中提到了这个错误。您需要将以下依赖项添加到您的pom.xml

<dependency>
    <groupId>com.github.jai-imageio</groupId>
    <artifactId>jai-imageio-core</artifactId>
    <version>1.4.0</version>
</dependency>

<dependency>
    <groupId>com.github.jai-imageio</groupId>
    <artifactId>jai-imageio-jpeg2000</artifactId>
    <version>1.3.0</version>
</dependency>

<!-- Optional for you ; just to avoid the same error with JBIG2 images -->
<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>jbig2-imageio</artifactId>
    <version>3.0.3</version>
</dependency>

如果您正在使用Gradle:

dependencies {
    implementation 'com.github.jai-imageio:jai-imageio-core:1.4.0'
    implementation 'com.github.jai-imageio:jai-imageio-jpeg2000:1.3.0'

    // Optional for you ; just to avoid the same error with JBIG2 images
    implementation 'org.apache.pdfbox:jbig2-imageio:3.0.3'
}
 类似资料:
  • 我在试着读书。tiff图像。我知道我不能阅读ImageIO提供的tiff文件。阅读并了解JAI API的支持。tiff图片,但我不会使用JAI API。那么JAI API还有其他选择吗?我在哪里可以买到JAI API?

  • 我使用javax.imageioAPI和JAI来压缩不同类型的图像。它适用于JPEG使用和GIF使用。但是它不支持使用进行PNG压缩,这会引发一个异常,如压缩类型未设置或“无有效压缩”等。所以我在下面使用了PNG的。它可以工作,但是图像质量太差了。 有人能建议如何使用PNGImageWriter进行PNG压缩,以及哪个JAR包含它吗?

  • 我正在使用Java压缩一个图像。

  • 通过人工智能技术对图像指定区域进行修复,不论是文字水印,还是logo水印。1秒恢复加水印前的样子。 图像修复API调用示例代码 github地址: https://github.com/picup-shop Python PHP Java Objective-c import requests requestBody = { { "base64": "/9j/4AAQSkZJRgABAQEA

  • 我的docker已经有了我在Job.Yaml中使用的图像,但minikube失败了 这是我的job.yaml文件 docker图像 谁能指导一下我缺少什么吗?任何特定的设置我需要做的注册表部分?

  • 目标 在这一章当中, 我们将学习如何通过一种叫做 图像修复(inpainting)的方法来去除旧照片中的小噪音,划痕等等 我们将看到 OpenCV 中的功能。 基础知识 你们大多数人会在家里看到一些老旧的照片,上面有一些黑点,一些划痕等等。你有没有想过去修复它?我们不能简单地在绘画工具中抹去它们,因为它只是用白色的结构来代替黑色的结构,这是没有用的。在这些情况下,使用了一种称为图像修复的技术。基本