2016-03-25 21 views
0

Bir resmi ByteArrayOutputStream dosyasına okumaya çalışıyorum ve daha sonra dizimi, json'umun bir parçası olarak API'ma göndermek için Base64'e kodlarım. Her yere kaydetmekten kaçınmak ve sadece okumak, kodlamak ve göndermek istiyorum. Ne yazık ki, Base64.getEncoder.encodeToString() yönteminde bir parametre olarak ByteArrayOutputStream.toByteArray() yöntemini kullandığımda, bir dosyadan Base64'e başarılı bir sınama okumasına kıyasla String'deki '\' fazladan kesme karakterleri içeren bir String döndürür. .Base64 kodlu görüntüye bayt dizisini oku

Doğrudan bayt dizisinden 64 tabanına okumak mümkün mü? Yoksa bir resme dönüştürmek zorunda kalacağım sonra 64?

Herhangi bir yardım için teşekkür ederiz. base64 gelen

cevap

0

Alma Resim:

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

Belki de ters yapmak yardımcı olabilir.

0

Görünüşe göre, çıkış kanalını doğrudan kodlayıcıya aktarma sorun oldu. Bayt [] 'a başvurmak için yerel bir değişken ekledim ve kodlayıcıya aktardım ve şimdi çalışıyor.

byte[] array = outputStream.toByteArray(); 
String base64String = Base64.getEncoder().encodeToString(array); 
İlgili konular