【发布时间】: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 插件(包括TIFFImageReader和TIFFImageWriter)将不可用。 -
@haraldK 谢谢!我在项目构建路径中添加了
jai_imageio.jar,问题就解决了。我花了很多时间才找到下载 JAR 文件的链接,而没有实际安装 JAI。该问题的答案中提到了链接。
标签: java tiff javax.imageio jai