Ich habe einen Base64-String, der ein BitMap-Image darstellt.
Ich muss diesen String erneut in ein BitMap-Bild umwandeln, um ihn in einer ImageView in meiner Android-App zu verwenden
Wie es geht?
Dies ist der Code, mit dem ich das Bild in den base64-String umwandle:
//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,","");
An alle, die sich noch für diese Frage interessieren: Wenn: 1-decodeByteArray null zurückgibt 2-Base64.decode löst eine bad-base64-Ausnahme aus
Hier ist die Lösung: - Sie sollten berücksichtigen, dass der von der API an Sie gesendete Wert Base64-codiert ist und zuerst dekodiert werden sollte, um ihn in ein Bitmap-Objekt umzuwandeln! - Sehen Sie sich Ihren Base64-codierten String an, wenn er mit beginnt
Der Base64.decode kann ihn nicht dekodieren. Daher muss er aus Ihrem codierten String entfernt werden:
Jetzt kann das pureBase64Encoded- Objekt dekodiert werden:
Verwenden Sie jetzt einfach die folgende Zeile, um daraus ein Bitmap- Objekt zu machen! ::
Oder wenn Sie die großartige Bibliothek Glide verwenden :
Das sollte den Job machen! Es verschwendete einen Tag damit und kam zu dieser Lösung!
Hinweis : Wenn immer noch ein Bad-Base64-Fehler auftritt, sollten Sie andere Base64.decode-Flags wie Base64.URL_SAFE usw. berücksichtigen
quelle
Dies ist ein sehr alter Thread, aber ich dachte, ich würde diese Antwort teilen, da ich viel Entwicklungszeit gebraucht habe , um die
NULL
Rückkehr vonBitmapFactory.decodeByteArray()
@Anirudh zu verwalten .Wenn die
encodedImage
Zeichenfolge eineJSON
Antwort ist, verwenden Sie einfachBase64.URL_SAFE
anstelle vonBase64.DEAULT
quelle
Um online zu überprüfen, können Sie verwenden
http://codebeautify.org/base64-to-image-converter
Auf diese Weise können Sie Zeichenfolgen in Bilder konvertieren
http://www.thecrazyprogrammer.com/2016/10/android-convert-image-base64-string-base64-string-image.html
quelle
Ich habe diese einfache Lösung gefunden
Verwenden Sie diese Methode, um von Bitmap zu Base64 zu konvertieren.
Konvertieren von Base64 in Bitmap ODER Zurücksetzen.
quelle