如何将指定的字节数组转换为点数组以在 Java 中显示图像

How to convert specified byte array to Point Array for displaying image in Java

I have a Base64 encoded String: iQA8AJ4ANwCjADYAqQA1ALAANAC7ADMAyAAyANUAMQACATEAEwEyACMBNABDATkAUwE8AGIBQABwAUQAfgFIAIsBTQCYAVEApQFVALIBWQC+AVwAygFgANcBYgDjAWQA8AFmAPwBZwAIAmcAFQJmACECZAAsAmMAOAJgAEMCXQBNAlkAVgJWAF8CUgBnAk4AbgJKAHUCRgB7AkIAgAI+AIQCOwCIAjgAjAI1AI8CMwCSAjIA

我的系统需要对这个值进行 Base64 解码。解码数据是一系列 2 字节 x 2 字节 y 坐标(低位字节第一个)。即 (-1,-1) 或 (0xFFFF, 0xFFFF) 表示抬起笔。

如何将 Based64 编码转换为 Java 中的点数组?

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 上设置字节顺序,并获取 shorts。

Base64 存在较旧的答案。这使用最新的 Base64 class 来替换旧的。