Encode and decode bitmap object in base64 string in Android Encode and decode bitmap object in base64 string in Android android android

Encode and decode bitmap object in base64 string in Android


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);}

Example usage:

String myBase64Image = encodeToBase64(myBitmap, Bitmap.CompressFormat.JPEG, 100);Bitmap myBitmapAgain = decodeBase64(myBase64Image);


Hope this will help you

 Bitmap bitmap = BitmapFactory.decodeStream(this.getContentResolver().openInputStream(uri));

(if you are referencing URI to construct bitmap) OR

Resources resources = this.getResources();Bitmap bitmap= BitmapFactory.decodeResource(resources , R.drawable.logo);

(if you are referencing drawable to construct bitmap)

Then Encode it

 ByteArrayOutputStream stream = new ByteArrayOutputStream();   bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); byte[] image = stream.toByteArray(); String encodedImage = Base64.encode(image, Base64.DEFAULT);

For Decoding Logic will be exactly reverse of encoding

byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT);Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 


To encode the bimap to image:

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