如何从Java中的任何网页下载图像

2022-08-31 14:14:17

嗨,我正在尝试从网页下载图像。我正在尝试从“http://www.yahoo.com”主页下载图像。请告诉我如何将“http://www.yahoo.com”作为输入传递。并在打开此网页时如何从此页面获取图像。请给我java代码,以便从网页中获取图像。


答案 1
try (URL url = new URL("http://www.yahoo.com/image_to_read.jpg")) {
    Image image = ImageIO.read(url);
} catch (IOException e) {
    // handle IOException
}

有关详细信息,请参阅程序包。这是使用AWT图像。否则,您可以执行以下操作:javax.imageio

URL url = new URL("http://www.yahoo.com/image_to_read.jpg");
InputStream in = new BufferedInputStream(url.openStream());
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
int n = 0;
while (-1!=(n=in.read(buf)))
{
   out.write(buf, 0, n);
}
out.close();
in.close();
byte[] response = out.toByteArray();

然后,您可能希望保存图像,因此请执行:

FileOutputStream fos = new FileOutputStream("C://borrowed_image.jpg");
fos.write(response);
fos.close();

答案 2

如果要保存图像并且知道其URL,则可以执行以下操作:

try(InputStream in = new URL("http://example.com/image.jpg").openStream()){
    Files.copy(in, Paths.get("C:/File/To/Save/To/image.jpg"));
}

您还需要处理可能被抛出的 s。IOException