Saya memiliki String Base64 yang mewakili gambar BitMap.
Saya perlu mengubah String itu menjadi gambar BitMap lagi untuk menggunakannya pada ImageView di aplikasi Android saya
Bagaimana cara melakukannya?
Ini adalah kode yang saya gunakan untuk mengubah gambar menjadi string 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,","");
Untuk siapa pun yang masih tertarik dengan pertanyaan ini: Jika: 1-decodeByteArray mengembalikan null 2-Base64.decode melempar bad-base64 Pengecualian
Ini solusinya: -Anda harus mempertimbangkan nilai yang dikirimkan kepada Anda dari API adalah Base64 yang di-encode dan harus didekodekan terlebih dahulu untuk melemparkannya ke objek Bitmap! -Ayo Lihat String yang disandikan Base64 Anda, Jika dimulai dengan
Base64.decode tidak akan dapat men-decode-nya, Jadi harus dihapus dari String Anda yang dikodekan:
Sekarang objek pureBase64Encoded siap didekodekan:
Sekarang cukup gunakan baris di bawah ini untuk mengubahnya menjadi Objek Bitmap ! :
Atau jika Anda menggunakan pustaka Glide yang hebat :
Ini harus melakukan pekerjaan! Satu hari ini terbuang sia-sia dan muncul solusi ini!
Catatan : Jika Anda masih mendapatkan kesalahan bad-base64 pertimbangkan flag Base64.decode lainnya seperti Base64.URL_SAFE dan seterusnya
sumber
Ini adalah utas yang sangat lama tetapi berpikir untuk membagikan jawaban ini karena butuh banyak waktu pengembangan saya untuk mengelola
NULL
pengembalianBitmapFactory.decodeByteArray()
seperti yang dihadapi @Anirudh.Jika
encodedImage
string adalahJSON
respons, gunakan sajaBase64.URL_SAFE
alih-alihBase64.DEAULT
sumber
Untuk mengecek online bisa Anda gunakan
http://codebeautify.org/base64-to-image-converter
Anda dapat mengonversi string menjadi gambar seperti ini
http://www.thecrazyprogrammer.com/2016/10/android-convert-image-base64-string-base64-string-image.html
sumber
Saya telah menemukan solusi mudah ini
Untuk mengkonversi dari bitmap ke Base64 gunakan metode ini.
Untuk mengkonversi dari Base64 ke bitmap ATAU kembali.
sumber