我正在尝试从我的 Java 程序读取驻留在网络上某处的图像。到目前为止,我已经使用以下代码成功加载了图像。
URL url = new URL("http://www.google.com/images/nav_logo4.png");
Image img = Toolkit.getDefaultToolkit().getImage(url);
我想知道为什么这个代码(这是我尝试的第一个)不起作用:
BufferedImage img = ImageIO.read(new File("http://www.google.com/images/nav_logo4.png"));
这将有一个好处是给我一个BufferedImage
。另外,如何使上述代码块直到图像加载?我知道我可以使用 ImageObserver
,但是有更简单的方法吗?
当我尝试第二个选项时,出现此异常:
javax.imageio.IIOException: Can't read input file!
最佳答案
一个File
无法引用 URL。
虽然我没有尝试过,但似乎有一个ImageIO.read(URL)
方法,它可以将 URL 作为输入,如 URL
对象。
我认为它的调用方式如下:
ImageIO.read(new URL("http://url/to/my/image.png"));
关于java - 用java从网络上检索图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1007424/