Quantcast
Channel: The Crazy Programmer
Viewing all articles
Browse latest Browse all 761

Android Convert Image to Base64 String or Base64 String to Image

$
0
0

In this tutorial you will learn how to convert image to base64 string or base64 string to image in android.

Base64 is an encoding schema that represents binary data in an ASCII string. It becomes really helpful in case you want to upload image to server or save the image in database.

How It Works?

Image to Base64 String

  • First convert the image into bitmap.
  • Then compress bitmap to ByteArrayOutputStream.
  • Convert ByteArrayOutputStream to byte array.
  • Finally convert byte array to base64 string.

Base64 String to Image

  • Convert the base64 string to byte array.
  • Now convert byte array to bitmap.

 

Android Convert Image to Base64 String or Base64 String to Image

Create new android studio project with package name com.base64example.

Add an image in res/drawable folder. This is the image that we will convert. See below screenshot I have added an image with name logo.png.

Android Convert Image to Base64 String or Base64 String to Image

Now add following code in respectively files.

acitivity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.base64example.MainActivity">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/image"/>
</RelativeLayout>

 

MainActivity.java

package com.base64example;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Base64;
import android.widget.ImageView;

import java.io.ByteArrayOutputStream;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ImageView image =(ImageView)findViewById(R.id.image);

        //encode image to base64 string
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.logo);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
        byte[] imageBytes = baos.toByteArray();
        String imageString = Base64.encodeToString(imageBytes, Base64.DEFAULT);

        //decode base64 string to image
        imageBytes = Base64.decode(imageString, Base64.DEFAULT);
        Bitmap decodedImage = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length);
        image.setImageBitmap(decodedImage);
    }
}

Run the project.

I am converting the image to base64 string and then converting back to bitmap and finally showing it in ImageView.

 

Screenshot

Android Convert Image to Base64 String or Base64 String to Image

The post Android Convert Image to Base64 String or Base64 String to Image appeared first on The Crazy Programmer.


Viewing all articles
Browse latest Browse all 761

Trending Articles