如何将指定的字节数组转换为点数组以在 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 来替换旧的。
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 来替换旧的。