Java处理TIF图像

Isa*_*aac 2 java tiff image javax.imageio

我的问题是,如何才能将.tif文件成功加载到Java中的Image实例中?

现在让我提供更多细节。我已经阅读了很多关于stackoverflow的关于如何在Java中处理/转换TIF图像的线程。我已经尝试了很多stackoverflow建议(我说建议,因为很少有人问他们回来说什么对他们有用)。我很确定我需要使用Java Advanced Imaging(JAI)库,但我认为我不知道如何使用它。现在让我解释一下该项目:

我正在从“处理”草图中获取帧的屏幕,然后使用Xuggler将其编码为视频。在草图中,我使用Processing的save(file filePath)函数将当前帧保存到文件中。我曾经有过save(“ img” + i +“。jpg”),但是创建jpg时发生的压缩将录制速度减慢到9-10fps,所以我切换了文件扩展名以查看是否可以改变结果,而save(“ img” + i“ .tif”)最快,我可以以22-23fps的速度录制。

处理可以将图像另存为.tif文件。但是遗憾的是,如果没有库,Java无法将.tif文件加载回去。我以前有代码:
     Image img = Toolkit.getDefaultToolkit()。getImage(“ pics / img” + i +“。jpg”);
该行代码会将.jpg文件加载到img中,我会很好地对视​​频进行编码。但是这行代码(用tif而不是jpg):
     Image img = Toolkit.getDefaultToolkit()。getImage(“ pics / img” + i +“。tif”);
将不会加载任何图像。我仍然可以使用Xuggler对视频进行编码,但是图像为空白,因此我认为此方法无法加载我的.tif文件。

我正在Windows 8计算机上使用Eclipse。任何帮助将不胜感激!

har*_*ldK 5

您不需要使用JAI。我建议您使用普通的ImageIO API和TIFF插件。

对于Java 9和更高版本,JDK捆绑了一个基本的TIFF插件。对于较早的版本,或者如果您需要更高级的功能,则还有其他几个适用于ImageIO的TIFF插件,根据您的需要,您可以使用jai-imageio的TIFF插件,我的TIFF插件或其他一些第三方插件。

我的插件支持大多数常见的TIFF类型。与jai-imageio相比,不需要本地库。您可以将Maven依赖项添加到项目中,也可以直接从此链接下载。

使用ImageIO API的好处是,在正确安装了插件之后,您需要做的是:

BufferedImage img = ImageIO.read("pics/img"+i+".tif"); 
Run Code Online (Sandbox Code Playgroud)