java - 用java从网络上检索图像

标签 java javax.imageio

我正在尝试从我的 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/

相关文章:

java - Java 子字符串错误索引越界

java - 同时使用 ActiveMQ 和 RabbitMQ

java - JAI供应商名称== null(标准解决方案不起作用)

java - 压缩 BufferedImage 而不写入磁盘

java - 在不知道图像名称的情况下将图像读入 ArrayList

java - 尝试在图形中绘制图像图标,但它不起作用

java - 日期属性在 java 类的方法中不起作用

java - 为什么此转换无效?

java - ImageIO - 获取图像类型和 exif 数据

java - Java中的各种类型的图像