Ich möchte Bitmap
object in der Zeichenfolge base64
codieren und decodieren. Ich benutze die Android API10,
Ich habe ohne Erfolg versucht, eine Methode in dieser Form zu verwenden, um eine Bitmap
zu kodieren.
public static String encodeTobase64(Bitmap image) {
Bitmap immagex=image;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
immagex.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] b = baos.toByteArray();
String imageEncoded = Base64.encodeToString(b,Base64.DEFAULT);
Log.e("LOOK", imageEncoded);
return imageEncoded;
}
public static String encodeToBase64(Bitmap image, Bitmap.CompressFormat compressFormat, int quality)
{
ByteArrayOutputStream byteArrayOS = new ByteArrayOutputStream();
image.compress(compressFormat, quality, byteArrayOS);
return Base64.encodeToString(byteArrayOS.toByteArray(), Base64.DEFAULT);
}
public static Bitmap decodeBase64(String input)
{
byte[] decodedBytes = Base64.decode(input, 0);
return BitmapFactory.decodeByteArray(decodedBytes, 0, decodedBytes.length);
}
Verwendungsbeispiel:
String myBase64Image = encodeToBase64(myBitmap, Bitmap.CompressFormat.JPEG, 100);
Bitmap myBitmapAgain = decodeBase64(myBase64Image);
Hoffe, das wird dir helfen
Bitmap bitmap = BitmapFactory.decodeStream(this.getContentResolver().openInputStream(uri));
(wenn Sie auf einen URI verweisen, um eine Bitmap zu erstellen) ODER
Resources resources = this.getResources();
Bitmap bitmap= BitmapFactory.decodeResource(resources , R.drawable.logo);
(wenn Sie zur Erstellung einer Bitmap zeichnend referenzieren)
Dann kodiere es
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] image = stream.toByteArray();
String encodedImage = Base64.encode(image, Base64.DEFAULT);
Für die Decodierung wird die Logik der Codierung genau umgekehrt
byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
So codieren Sie die Bimap in das Bild:
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 80, byteArrayOutputStream);
byte[] imageBytes = byteArrayOutputStream.toByteArray();
String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
Log.d("bytearray", String.valueOf(byteArrayOutputStream.toByteArray()));
Log.d("encodedimage",encodedImage);