【发布时间】:2012-01-09 17:36:43
【问题描述】:
我的Java不是很好,我需要通过TCP套接字发送一个BufferedImage。我已经设法建立连接(并发送字符串),但我真的不知道应该使用哪个 Writer 来发送和恢复 BufferedImage。
【问题讨论】:
-
搜索时没找到,谢谢!
标签: java sockets tcp bufferedimage
我的Java不是很好,我需要通过TCP套接字发送一个BufferedImage。我已经设法建立连接(并发送字符串),但我真的不知道应该使用哪个 Writer 来发送和恢复 BufferedImage。
【问题讨论】:
标签: java sockets tcp bufferedimage
您应该ImageIO.write 使用某种格式(PNG、JPG 等)将图像序列化为字节流。
然后您应该通过线路发送字节流。这里的困难是你不知道前面流的大小。简单的解决方案是将所有内容保存到内存字节数组中(使用 ByteArrayOutputStream )然后发送。或者如果它不适合内存,你应该做一些聪明的事情(将它保存到临时文件中,或者使用一些分块协议或发送唯一的终止标记)。
【讨论】:
查看ImageIO class,其中包含reading 的方法以及将BufferedImages 和RenderedImages 写入/从各种输入/输出流中写入。
【讨论】: