Comment convertir un grand Bitmap (photo prise avec l'appareil photo du téléphone) en une chaîne Base64 ?
Réponses
Trop de publicités?utilisez la méthode suivante pour convertir le bitmap en tableau d'octets :
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream .toByteArray();
pour coder en base64 à partir d'un tableau d'octets, utilisez la méthode suivante
String encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);
Vasilii Suricov
Points
341
J'ai une solution rapide. Créez simplement un fichier ImageUtil.java
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Base64;
import java.io.ByteArrayOutputStream;
public class ImageUtil
{
public static Bitmap convert(String base64Str) throws IllegalArgumentException
{
byte[] decodedBytes = Base64.decode(
base64Str.substring(base64Str.indexOf(",") + 1),
Base64.DEFAULT
);
return BitmapFactory.decodeByteArray(decodedBytes, 0, decodedBytes.length);
}
public static String convert(Bitmap bitmap)
{
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream);
return Base64.encodeToString(outputStream.toByteArray(), Base64.DEFAULT);
}
}
Usage:
Bitmap bitmap = ImageUtil.convert(base64String);
ou alors
String base64String = ImageUtil.convert(bitmap);