加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 从和OutputStream获取BufferedImage

发布时间:2020-12-15 05:01:11 所属栏目:Java 来源:网络整理
导读:我有一个函数,int readFully(FileHandle handle,OutputStream out),它从SSH服务器读取整个文件并将其存储在本地流中.我可以使用FileOutputStream为第二个参数在本地编写文件,然后使用以下内容将该文件读入Buffered Image: bufferedImage = ImageIO.read(new
我有一个函数,int readFully(FileHandle handle,OutputStream out),它从SSH服务器读取整个文件并将其存储在本地流中.我可以使用FileOutputStream为第二个参数在本地编写文件,然后使用以下内容将该文件读入Buffered Image:

bufferedImage = ImageIO.read(new File("/path/to/file"));

但是如何在不首先将其写入文件的情况下直接创建bufferedImage?我看了this question,但仍然无法弄清楚我的情况.

解决方法

只需写入ByteArrayOutputStream – 然后可以创建一个ByteArrayInputStream来读取相同的字节数组,然后将其传递给 ImageIO.read(InputStream).

ByteArrayOutputStream output = new ByteArrayOutputStream();
readFully(handle,output);
byte[] data = output.toByteArray();
ByteArrayInputStream input = new ByteArrayInputStream(data);
BufferedImage image = ImageIO.read(input);

假设你不能直接从FileHandle创建一个InputStream,这会更简单.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读