Java 使用JAI读取TIFF文件
我的目标是修改TIFF文件。我尝试使用ImageIO读取文件。尝试获取TIFF文件的ImageReader会导致NoTouchElementException。这是我的密码:Java 使用JAI读取TIFF文件,java,tiff,javax.imageio,jai,Java,Tiff,Javax.imageio,Jai,我的目标是修改TIFF文件。我尝试使用ImageIO读取文件。尝试获取TIFF文件的ImageReader会导致NoTouchElementException。这是我的密码: Iterator iterator = ImageIO.getImageReadersByFormatName("tiff"); // Next code string throws java.util.NoSuchElementException ImageReader reader = (ImageReader) it
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();
}
如果您能在这个问题上提供帮助,我将不胜感激。要使此代码在没有JAI安装的情况下工作,JAR文件
JAI_core.JAR
JAI_codec.JAR
JAI_imageio.JAR
应该添加到类路径中。下载连结:
jai imageio.jar(或类似文件)。该异常表示您没有TIFF的读卡器,这再次表明您没有可用的JAI。你的代码没有问题。嗨@haraldK!我用的是JAI 1.1.3。我已经下载了jai_core.jar和jai_codec.jar,并将它们设置在我的eclipse项目构建路径中。不应进行其他安装,因为此代码应部署在客户端服务器上,而我没有访问权限和rghts在其上进行安装。@Victor AFAIK,除非您还安装了jai_imageio.jar
,jai imageio插件(包括TIFFImageReader
和TIFFImageWriter
)将不可用。@haraldK谢谢!我在项目构建路径中添加了jai_imageio.jar
,问题就解决了。我花了很多时间才找到下载JAR文件的链接,而没有实际安装JAI。这个问题的答案中提到了链接。这个问题没有maven依赖性吗?@mmcrae这是一个非常痛苦的遗留项目的小补丁,没有使用mavensmall patch for一个非常痛苦的遗留项目
heh听起来就像我们现在正在做的一样……我可以验证这个答案即使在Java 8上也仍然有效2020年+1年。