2011-06-17 53 views
0

我正在使用輸出字節數組的.NET json服務。字節arrary被轉換成每個字節的整數表示。在Fiddler中查看時,看起來像這樣:JSON二進制數組到Java中的圖像

{「imageBackground」:[137,80,78,71,13,10,26,10,0,0,0,13,73,72,68, ...}}

在Java中,我已將數據重新導入到JSONObject中,但我對Java不熟悉,所以我不確定要從何處將其轉換爲可用的東西。我懷疑如果我可以把它恢復成某種類型的流,我應該可以將它作爲圖像(PNG/JPG/etc)進行查看...

這裏有任何提示嗎?

+0

我有點不安的想法是,任何人都首先發送圖像的方式。 (Base64數據的JSON字符串會更好。) – Darien

回答

2

獲取imageBackground爲一個字節數組,然後將它交給ImageIO

byte[] imageBackground = // set me here; 
ByteArrayInputStream input = new ByteArrayInputStream(imageBackground); 
try { 
    BufferedImage ImageIO.read(input); 
    // do fun stuff with the image... 
} 
finally { 
    input.close(); 
} 

我不知道你的應用程序想要做的形象是什麼,但一旦你有一個BufferedImage可以使用ImageIO把它轉換成另一種類型,你可以做轉換,輸出到一個文件......天空的極限。您可以通過谷歌搜索找到相關教程。

+0

Ahh可怕的「已發佈新答案」彈出窗口,+1 – Andrew

+0

@Andrew Heh heh ...我知道這種感覺。 – stevevls

+0

是否有任何java函數可用來幫助獲取整數字符串回到一個字節[]? – bugfixr

0

像這樣的東西(的方法名稱可能不正確,不從我的頭頂認識他們)

JSONArray jBytes = theObject.getArray("imageBackground"); 
byte[] imData = new byte[jBytes.size()]; 
for (int i = 0; i < jBytes.size(); i++) { 
    imData[i] = jBytes.get(i); 
} 

這就是你如何做一個真正的字節數組。然後做什麼stevevls張貼,或任何你想要的。