gpt4 book ai didi

java - 从 HttpUrlConnect::URL 将二进制图像数据从 URL 读取到 ByteArrayInputStream

转载 作者:行者123 更新时间:2023-12-05 06:00:59 25 4
gpt4 key购买 nike

我正在尝试从 URL 中提取图像并将其直接读入 ByteArrayInputStream。我找到了一种方法,但它需要一种图像类型,并且会有各种图像类型,所以我想找到一种简单的方法来直接读取二进制数据。

这是我最近的尝试。我正在使用 BufferedImage,我认为没有必要。

URL url = new URL("http://hobbylesson.com/wp-content/uploads/2015/04/Simple-Acrylic-Painting-Ideas00005.jpg");

//Read in the image
BufferedImage image = ImageIO.read(url);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "png", baos);
is = new ByteArrayInputStream(baos.toByteArray());

最佳答案

URL url = new URL("http://hobbylesson.com/wp-content/uploads/2015/04/Simple-Acrylic-Painting-Ideas00005.jpg");

ByteArrayOutputStream baos = new ByteArrayOutputStream();
url.openStream().transferTo(baos);

ByteArrayInputStream in = new ByteArrayInputStream(baos.toByteArray());

transferTo() 方法从 Java 9 开始存在。如果您应该使用旧版本的 Java,请参阅 here作为替代方案。这个解决方案的主要缺点是它必须先将整个文件读入内存。如果您无论如何都计划将二进制数据转发到其他进程,则可以省略 ByteArray 流并将内容直接传输到 OutputStream。

关于java - 从 HttpUrlConnect::URL 将二进制图像数据从 URL 读取到 ByteArrayInputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67390577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com