我正在尝试将图像读入ByteArrayOutputStream,然后将数组编码为Base64,以便作为json的一部分发送到我的API。我想避免将它保存在任何地方,只需阅读,编码和发送。不幸的是,当我使用ByteArrayOutputStream.toByteArray()作为Base64.getEncoder.encodeToString()方法中的参数时,它返回一个字符串,该字符串在字符串中包含额外的中断字符'\',而成功的测试从文件读取到Base64中。
是否可以直接从字节数组读入base 64?或者我必须翻译成图像然后基于64?
感谢任何帮助。
答案 0 :(得分:0)
从base64获取图片:
byte[] b = DatatypeConverter.parseBase64Binary(base64Img);
ByteArrayInputStream s = new ByteArrayInputStream(b);
return new Image(s);
也许它可以帮助你做相反的事情。
答案 1 :(得分:0)
显然,将输出流直接传递给编码器是个问题。我添加了一个局部变量来引用byte [],然后将其传递给编码器,它现在可以工作了。
byte[] array = outputStream.toByteArray();
String base64String = Base64.getEncoder().encodeToString(array);