2017-09-26 63 views
-3

顯示圖像轉換我有一個Base64編碼的字符串:iQA8AJ4ANwCjADYAqQA1ALAANAC7ADMAyAAyANUAMQACATEAEwEyACMBNABDATkAUwE8AGIBQABwAUQAfgFIAIsBTQCYAVEApQFVALIBWQC + AVwAygFgANcBYgDjAWQA8AFmAPwBZwAIAmcAFQJmACECZAAsAmMAOAJgAEMCXQBNAlkAVgJWAF8CUgBnAk4AbgJKAHUCRgB7AkIAgAI + AIQCOwCIAjgAjAI1AI8CMwCSAjIA如何指定字節數組點陣列在Java

我的系統需要爲Base64解碼此值。解碼後的數據是一系列2字節x 2字節的y座標(低位字節第1位)。即(-1,-1)或(0xFFFF,0xFFFF)表示筆。

如何將Java編碼的Based64編碼轉換爲Point Array?

+0

我剛剛更新了標題。我的解釋不清楚。這是不同的問題。 –

回答

0
byte[] bytes = Base64.getDecoder().decode("8AG..."); 
ShortBuffer buf = ByteBuffer.wrap(bytes).order(ByteOrder.LITTLE_ENDIAN).asShortBuffer(); 
int npoints = bytes.length/4; 
for (int i = 0; i < npoints; ++i) { 
    short x = buf.get(); 
    short y = buf.get(); 
} 

即:將字節包裝在ByteBuffer中。設置little-endian的字節順序,並獲取短褲。

較舊的答案存在Base64。這使用最新的Base64類替換舊的。

+0

我很抱歉。我錯過了很棒的東西:)。謝謝你的幫助。但是,我得到了異常:byte [] bytes = Base64.getDecoder()。decode(「8AG ...」);. java.lang.IllegalArgumentException異常:非法base64字符2e。如何檢查編碼字符串是否正確? –

+0

它運作良好。非常感謝你。 –