如何指定字节数组点阵列在Java
显示图像转换我有一个Base64编码的字符串:iQA8AJ4ANwCjADYAqQA1ALAANAC7ADMAyAAyANUAMQACATEAEwEyACMBNABDATkAUwE8AGIBQABwAUQAfgFIAIsBTQCYAVEApQFVALIBWQC + AVwAygFgANcBYgDjAWQA8AFmAPwBZwAIAmcAFQJmACECZAAsAmMAOAJgAEMCXQBNAlkAVgJWAF8CUgBnAk4AbgJKAHUCRgB7AkIAgAI + AIQCOwCIAjgAjAI1AI8CMwCSAjIA如何指定字节数组点阵列在Java
我的系统需要为Base64解码此值。解码后的数据是一系列2字节x 2字节的y坐标(低位字节第1位)。即(-1,-1)或(0xFFFF,0xFFFF)表示笔。
如何将Java编码的Based64编码转换为Point Array?
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类替换旧的。
我很抱歉。我错过了很棒的东西:)。谢谢你的帮助。但是,我得到了异常:byte [] bytes = Base64.getDecoder()。decode(“8AG ...”);. java.lang.IllegalArgumentException异常:非法base64字符2e。如何检查编码字符串是否正确? –
它运作良好。非常感谢你。 –
我刚刚更新了标题。我的解释不清楚。这是不同的问题。 –