'Bitmap image to base64 conversion

I am trying to convert a bitcode image to base64 format. I tried to code like

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

generated response is below which does not give me image again.

can someone provide some pointers here? What I might be doing wrong?

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAMgAlgDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+PXxv b/u7W6/58cf+zd85H8OMDH615jP99q+hb+2tP7MvfwHfsJBnqeK8Gv8A7ILts2meD269ffj1/Lnr Xz+D+Bf9w/8A3IfJ/wDyswp7fr/n+979en5gZO3J9Y+E/wBk861+0/7OPrluvv198deK88/0b/OK uaL9qt83Vsc8Dt3y/v8A7vvnHUAiugzP1P8Ag9418L+Hs/6V2XuP9vHRu+OO/JyDk11nxf8Aj7pm s27Wmmap068g926/Mcdz+J5BGa/FvxP4w8VW2rXv2XVPsf23rzz/ABdc/n3PJySTXPTeMPFXJudV 9Bj15b3/AMeM9CTXr691/wCAv/5I0+o/3f8Ayb/7c9Y+K2oXXjHXG/0o3lqMegzy455PYe/JPck1 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



Solution 1:[1]

try this function :

public static String imageToString(Bitmap BitmapData) {

        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        BitmapData.compress(Bitmap.CompressFormat.PNG, 100, bos);
        byte[] byte_arr = bos.toByteArray();

        String file = Base64.encodeToString(byte_arr, Base64.DEFAULT);
        //appendLog(file);
        return file;
    }

Solution 2:[2]

There are some misunderstandings here. In your method you are receiving a bitmap (image) by parameter. If you want to pass it to base64 format, you are doing it right because base64 format is just a big String, as you can see in your return.

If the error is in your method and in de reverse process (parsing this String in Base64 to Bitmap), you can try this function:

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();  
bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream .toByteArray();

to encode base64 from byte array use following method:

String encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);

Also, try to use this method to reverse the process of encode:

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

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Bhupat Bheda
Solution 2 Luiz Fernando Salvaterra