Mam ciąg Base64, który reprezentuje obraz BitMap.
Muszę ponownie przekształcić ten ciąg w obraz BitMap, aby użyć go w ImageView w mojej aplikacji na Androida
Jak to zrobić?
Oto kod, którego używam do przekształcenia obrazu w ciąg base64:
//proceso de transformar la imagen BitMap en un String:
//android:src="c:\logo.png"
Resources r = this.getResources();
Bitmap bm = BitmapFactory.decodeResource(r, R.drawable.logo);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos); //bm is the bitmap object
byte[] b = baos.toByteArray();
//String encodedImage = Base64.encode(b, Base64.DEFAULT);
encodedImage = Base64.encodeBytes(b);
String cleanImage = base64Image.replace("data:image/png;base64,", "").replace("data:image/jpeg;base64,","");
Każdemu, kto nadal jest zainteresowany tym pytaniem: Jeśli: 1-decodeByteArray zwraca null 2-Base64.decode zgłasza wyjątek bad-base64
Oto rozwiązanie: - Powinieneś wziąć pod uwagę, że wartość wysyłana do ciebie z API jest zakodowana w Base64 i najpierw należy ją zdekodować, aby rzutować ją na obiekt Bitmap! -Spójrz na swój napis zakodowany w Base64, jeśli zaczyna się od
Kod Base64.decode nie będzie mógł go zdekodować, więc należy go usunąć z zakodowanego ciągu:
Teraz obiekt pureBase64Encoded jest gotowy do zdekodowania:
Teraz po prostu użyj poniższej linii, aby przekształcić to w obiekt bitmapowy ! :
Lub jeśli korzystasz ze wspaniałej biblioteki Glide :
To powinno wystarczyć! Zmarnowało to jeden dzień i wymyśliło to rozwiązanie!
Uwaga : jeśli nadal pojawia się błąd złej base64, rozważ inne flagi Base64.decode, takie jak Base64.URL_SAFE i tak dalej
źródło
To jest bardzo stary wątek, ale postanowiłem podzielić się tą odpowiedzią, ponieważ zajęło mi dużo czasu na opracowanie
NULL
zwrotów wBitmapFactory.decodeByteArray()
obliczu @Anirudh.Jeśli
encodedImage
ciąg jestJSON
odpowiedzią, po prostu użyjBase64.URL_SAFE
zamiastBase64.DEAULT
źródło
Aby sprawdzić online, możesz użyć
http://codebeautify.org/base64-to-image-converter
W ten sposób możesz przekonwertować ciąg na obraz
http://www.thecrazyprogrammer.com/2016/10//roidroid-convert-image-base64-string-base64-string-image.html
źródło
Znalazłem to łatwe rozwiązanie
Aby przekonwertować mapę bitową na Base64, użyj tej metody.
Aby przekonwertować z Base64 na bitmapę LUB przywrócić.
źródło