【问题标题】:Reading TIFF file using JAI使用 JAI 读取 TIFF 文件
【发布时间】:2014-08-19 14:25:48
【问题描述】:

我的目标是修改 TIFF 文件。我尝试使用 ImageIO 读取文件。尝试获取 TIFF 文件的 ImageReader 会导致 NoSuchElementException。这是我的代码:

Iterator iterator = ImageIO.getImageReadersByFormatName("tiff");
// Next code string throws java.util.NoSuchElementException
ImageReader reader = (ImageReader) iterator.next();
ImageInputStream is = null;

try {
    is = new FileImageInputStream(new File(sourceFilePath));
    reader.setInput(is, false, true);
    int pageNum = reader.getNumImages(true);
    System.out.println(pageNum);
} catch (Exception e) {
    e.printStackTrace();
}

我将不胜感激有关此问题的任何帮助。

【问题讨论】:

  • 我找到了一个可以帮助你的以前的帖子:stackoverflow.com/questions/4828757/…
  • 您使用的是什么版本的 JAI?验证您的 JAI 安装。确保jai-imageio.jar(或类似的)已安装并可在运行时访问(在类路径上)。异常表明您没有 TIFF 阅读器,这再次表明您没有可用的 JAI。您的代码没有问题。
  • 嗨@haraldK!我正在使用 JAI 1.1.3。我已经下载了 jai_core.jar、jai_codec.jar 并将它们设置在我的 Eclipse 项目构建路径中。不应进行其他安装,因为此代码应部署在客户端的服务器上,而我无权在其上进行安装。
  • @Victor AFAIK,除非您还安装了 jai_imageio.jar,否则 JAI ImageIO 插件(包括 TIFFImageReaderTIFFImageWriter)将不可用。
  • @haraldK 谢谢!我在项目构建路径中添加了jai_imageio.jar,问题就解决了。我花了很多时间才找到下载​​ JAR 文件的链接,而没有实际安装 JAI。该问题的答案中提到了链接。

标签: java tiff javax.imageio jai


【解决方案1】:

要使此代码在不安装 JAI 的情况下工作,应将 JAR 文件 jai_core.jar jai_codec.jar jai_imageio.jar 添加到类路径中。下载链接:

【讨论】:

  • 这个没有maven依赖吗?
  • @mmcrae 这是一个非常痛苦的遗留项目的小补丁,没有使用 maven
  • small patch for a very painful legacy project heh 听起来就像我们现在正在做的......
  • 我可以验证这个答案实际上仍然适用于 2020 +1 的 Java 8。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-26
  • 2017-03-02
  • 2013-12-01
  • 1970-01-01
相关资源
最近更新 更多