Eu tenho uma String Base64 que representa uma imagem BitMap.
Preciso transformar essa String em uma imagem BitMap novamente para usá-la em um ImageView no meu aplicativo Android
Como fazer isso?
Este é o código que eu uso para transformar a imagem na 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,","");
Para quem ainda está interessado nesta pergunta: Se: 1-decodeByteArray retornar nulo 2-Base64.decode lança a exceção bad-base64
Aqui está a solução: -Você deve considerar que o valor enviado a você pela API é codificado em Base64 e deve ser decodificado primeiro para convertê-lo em um objeto Bitmap! -Veja a String codificada em Base64, se começar com
O Base64.decode não poderá decodificá-lo, portanto, ele deve ser removido da sua String codificada:
Agora o objeto pureBase64Encoded está pronto para ser decodificado:
Agora basta usar a linha abaixo para transformar isso em um objeto Bitmap ! :
Ou se você estiver usando a ótima biblioteca Glide :
Isso deve fazer o trabalho! Perdeu um dia com isso e chegou a esta solução!
Nota : Se você ainda estiver recebendo o erro bad-base64, considere outros sinalizadores Base64.decode como Base64.URL_SAFE e assim por diante
fonte
Este é um tópico muito antigo, mas pensei em compartilhar esta resposta, pois demorou muito do meu tempo de desenvolvimento para gerenciar o
NULL
retornoBitmapFactory.decodeByteArray()
como o @Anirudh enfrentou.Se a
encodedImage
sequência for umaJSON
resposta, basta usar emBase64.URL_SAFE
vez deBase64.DEAULT
fonte
Para verificar online, você pode usar
http://codebeautify.org/base64-to-image-converter
Você pode converter string em imagem dessa maneira
http://www.thecrazyprogrammer.com/2016/10/android-convert-image-base64-string-base64-string-image.html
fonte
Encontrei esta solução fácil
Para converter de bitmap em Base64, use este método.
Para converter de Base64 em bitmap OU reverter.
fonte