Convertir ImageView a Base64 en Android

En este post te mostraré cómo convertir un BitMap (obtenido de un ImageView) a su representación como string en Base64.

En otras palabras vamos a convertir una imagen a base64 en Android usando Java. Esto lo utilicé por ejemplo al tomar fotos para una app de deliveries y después subirlas a un servidor como una simple cadena.

Primero: obtener el Bitmap de un ImageView

Debemos tener una referencia al ImageView. Después, para obtener el Bitmap invocamos a getDrawable().getBitmap() así:

Bitmap bitmap = ((BitmapDrawable) imageViewMuestra.getDrawable()).getBitmap();

En este caso mi ImageView se llama imageViewMuestra. Recuerda que el bitmap podría ser nulo (null), así que siempre debes tener cuidado y hacer comprobaciones; como veremos a continuación.

Convertir Bitmap a Base64 en Android

Ahora que ya tenemos el Bitmap hacemos lo siguiente:

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream.toByteArray();
String fotoEnBase64 = Base64.encodeToString(byteArray, Base64.DEFAULT);
// Ahora tenemos el Bitmap en Base64 dentro de la variable fotoEnBase64

A la cadena fotoEnBase64, o mejor dicho, lo que resulte de Base64.encodeToString lo podemos guardar en una base de datos, loguearlo, etcétera.

Poniendo todo junto

Aquí tengo un ejemplo de todo lo mencionado anteriormente:

Bitmap bitmap = ((BitmapDrawable) imageViewMuestra.getDrawable()).getBitmap();
if (bitmap != null) {
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
    byte[] byteArray = byteArrayOutputStream.toByteArray();
    String fotoEnBase64 = Base64.encodeToString(byteArray, Base64.DEFAULT);
}

Por cierto, no olvides que debes importar ByteArrayOutputStream, Base64, BitmapDrawable y Bitmap:

import java.io.ByteArrayOutputStream;
import android.util.Base64;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.Bitmap;

Y así es como termina este post.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *