2011-05-10 165 views
1

我有我的套接字通信啓動和運行。閱讀二進制圖像

我現在需要用以下幫助:

我們正在經歷插座的圖像發送到設備。

transmit.framebuffer.rgb_byte will transmit in binary format the following information: 
[4 bytes] => image width 
[4 bytes] => image height 
[< image width> * <image height> * 3 bytes] => RGB in unsigned char format [0, 255] 
[3 bytes] "OK\n" 

我將如何去獲得這個工作?.. 現在我只是純文本等工作, 所以這整個二進制編碼是新的我。

+0

有什麼問題嗎?使用(Buffered)InputStream /(Buffered)OutputStream,並寫入字節。 – Kaj 2011-05-10 19:10:40

回答

1

這是一個例子可以讀取客戶端上的數據:

out = new ByteArrayOutputStream(); 
in = new BufferedInputStream(socket.getInputStream(), BUFFER_SIZE); 
byte[] dataBuffer = new byte[1024 * 16]; 
int size = 0; 
while ((size = in.read(dataBuffer)) != -1) { 
    out.write(dataBuffer, 0, size); 
} 
out.flush(); 
byte[] bytesReceived = out.toByteArray(); 
+0

謝謝。只需要讓我的頭纏住這個。 如何繼續將抓取的數據插入到picturebox? – 2011-05-10 19:26:27

+0

我需要說的是,聽起來很奇怪。爲什麼服務器不是以有效的圖像格式發送圖像?例如。一個PNG或JPG。這將是更容易顯示圖像。 – Kaj 2011-05-10 19:33:08

+0

看起來你可以將byte []轉換爲一個整數數組(而你需要將OR轉換爲一個整數),然後使用http://developer.android.com/reference/android/graphics/Bitmap .html#createBitmap(int [],int,int,android.graphics.Bitmap.Config) – Kaj 2011-05-10 19:49:57