2016-03-25 36 views
0

イメージをByteArrayOutputStreamに読み込み、その配列をBase64にエンコードしてjsonの一部としてAPIに送信しようとしています。私はどこにでもそれを保存することを避け、それを読んで、エンコードして送信したいと思っています。残念ながら、Base64.getEncoder.encodeToString()メソッドのパラメータとしてByteArrayOutputStream.toByteArray()を使用すると、FileからBase64に読み込みを成功させる場合と比較して、文字列に余分な改行文字 '\'を含むStringを返します。バイト配列をbase64でエンコードされたイメージに読み込む

バイト配列から直接ベース64に読み込むことはできますか?それとも、イメージを64に変換する必要がありますか?

何か助けていただければ幸いです。 base64でから

答えて

0

取得画像:

byte[] b = DatatypeConverter.parseBase64Binary(base64Img); 
ByteArrayInputStream s = new ByteArrayInputStream(b); 
return new Image(s); 

多分それはあなたが逆の操作を行うのを助けることができます。

0

明らかに、出力ストリームをエンコーダに直接渡すことが問題でした。私は、バイト[]を参照するためにローカル変数を追加し、それをエンコーダに渡すと、現在動作します。

byte[] array = outputStream.toByteArray(); 
String base64String = Base64.getEncoder().encodeToString(array); 
関連する問題