2012-01-09 264 views
1

我在Java中不太好,我需要通过TCP套接字发送一个BufferedImage。我已经设法建立连接(并发送字符串),但我无法真正发现我应该使用哪个Writer来发送和恢复BufferedImage。Java - 通过TCP套接字传输BufferedImage

+2

[在java中通过套接字发送截图(bufferedImage)]的可能重复(http://stackoverflow.com/questions/6973848/sending-a-screenshot-bufferedimage-over-a-socket-in-java) – Kiril 2012-01-09 17:42:29

+0

我在搜索时没有找到那个,谢谢! – 2012-01-09 17:44:54

回答

4

您应该使用ImageIO.write以某种格式(PNG,JPG等)将图像序列化为字节流。

然后你应该通过电线发送字节流。这里的难点是你不知道前面的流的大小。简单的解决方案是将所有内容保存到内存中的字节数组(使用ByteArrayOutputStream)然后发送它。或者,如果它不适合内存,你应该做一些聪明的事情(保存到临时文件,或使用一些分块的协议或发送唯一的终止标记)。

+0

示例代码将gr8 – Arin 2016-12-19 04:31:52

+0

@Arin它是如此多的选择如何实现......因此,很难拿出一个明确的样本。在大多数情况下,最好不要使用原始TCP,但使用例如HTTP:http://stackoverflow.com/questions/2438375/how-to-convert-bufferedimage-to-image-to-display-on-jsp – kan 2016-12-19 10:26:53

+0

@Arin下面是一个内存存储的例子:http:/ /stackoverflow.com/a/4944536/438742 – kan 2016-12-19 10:33:59