当Toolkit.getDefaultToolkit()抛出AWTError时,如何用Java读取图像?
题
我正在使用
在Java中读取图像文件java.awt.Image img = Toolkit.getDefaultToolkit().createImage(filePath);
在某些系统上,这不起作用,而是抛出一个抱怨sun / awt / motif / MToolkit的AWTError。
如何从图像文件创建java.awt.Image对象?
解决方案
其他提示
ImageIO中有几种静态方法可以读取不同来源的图像。你个案中最有趣的是:
BufferedImage read(ImageInputStream stream)
BufferedImage read(File input)
BufferedImage read(InputStream input)
我在代码中检查了一下。它使用ImageReader抽象类,有三个实现者:JPEGReader。 PNGReader和GIFReader。这些类和BufferedImage显然不使用任何本机方法,所以它应该始终有效。
看来你的AWTError是因为你在无头配置中运行java,或者windows工具包有某种问题。虽然没有看具体的错误很难说。此解决方案将允许您读取图像(可能),但根据您要对其执行的操作,AWTError可能会在您尝试显示它时稍后抛出。
在某些系统上添加“-Djava.awt.headless = true”因为java参数可能会有帮助。
不隶属于 StackOverflow