2012-01-09 157 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