wake-up-neo.com

Codieren und Dekodieren eines Bitmap-Objekts in der Base64-Zeichenfolge in Android

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;
}
63
AndreaF
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);
207
Roman Truba

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); 
10
Vipul Shah

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);
0
Hanisha