2011-02-15 105 views
0

我們正在開發一個Android應用程序(Java),它讀取圖像,將base64中的字節進行編碼,以通過HTTP(通過GET)將它們發送到用VB.NET編寫的WebService。將Java Byte []轉換爲VB.NET MemoryStream

在.NET方面,他們使用的是這樣的:

Dim Pix As Image 
Pix = Image.FromFile("C:\Users\Public\Pictures\Sample Pictures\Tree.jpg") 

Dim ms As New MemoryStream 
Pix.Save(ms, ImageFormat.Jpeg) 
Dim ImByte() As Byte = ms.GetBuffer 
ms.Close() 

聽起來不錯。

如何將正確的字符串傳遞給它們以正確解碼Java編碼(無符號)到.NET解碼(有符號)的圖像?

非常感謝 Nicolas。

+0

當然,在.NET端,你需要Convert.FromBase64String()?而base64是語言不可知的......如果Java或Javascript或VB或原始x86正在進行編碼......無關緊要... – 2011-02-15 20:26:51

回答

2

第一個錯誤:您正在使用GetBuffer(),這可能會太大。改爲使用ToArray()

在Java方面,只需使用任何Base64解碼器,如Apache Commons Codec one。不要擔心字節的簽名 - Base64實際上使您對這個問題沒有問題。

這是假設Web服務客戶端不會自動爲您執行此操作,當然......如果您的Web服務使用base64「廣告」一個字節數組,它可能只是自動的。

旁邊的問題:爲什麼麻煩加載圖像作爲圖像呢?爲什麼不使用:

Dim ImByte() As Byte = File.ReadAllBytes("C:\Users\...\Tree.jpg") 

+0

非常感謝,它的工作。 – 2011-02-17 13:07:47