Take picture and convert to Base64 Take picture and convert to Base64 android android

Take picture and convert to Base64


Try this:
ImageUri to Bitmap:

 @Override        protected void onActivityResult(int requestCode, int resultCode, Intent data) {            super.onActivityResult(requestCode, resultCode, data);            if (requestCode == TAKE_PHOTO_CODE && resultCode == RESULT_OK) {                final Uri imageUri = data.getData();                final InputStream imageStream = getContentResolver().openInputStream(imageUri);                final Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);                String encodedImage = encodeImage(selectedImage);            }        }

Encode Bitmap in base64

   private String encodeImage(Bitmap bm)    {        ByteArrayOutputStream baos = new ByteArrayOutputStream();        bm.compress(Bitmap.CompressFormat.JPEG,100,baos);        byte[] b = baos.toByteArray();        String encImage = Base64.encodeToString(b, Base64.DEFAULT);        return encImage;    }

Encode from FilePath to base64

 private String encodeImage(String path)    {        File imagefile = new File(path);        FileInputStream fis = null;        try{            fis = new FileInputStream(imagefile);        }catch(FileNotFoundException e){            e.printStackTrace();        }        Bitmap bm = BitmapFactory.decodeStream(fis);        ByteArrayOutputStream baos = new ByteArrayOutputStream();        bm.compress(Bitmap.CompressFormat.JPEG,100,baos);        byte[] b = baos.toByteArray();        String encImage = Base64.encodeToString(b, Base64.DEFAULT);        //Base64.de        return encImage;    }

output:enter image description here


I've wrote my code like this :

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Camera mCamera = Camera.open();        mCamera.startPreview();// I don't know why I added that,                                // but without it doesn't work... :D        mCamera.takePicture(null, null, mPicture);    }    private Camera.PictureCallback mPicture = new Camera.PictureCallback() {        @Override        public void onPictureTaken(byte[] data, Camera camera) {            System.out.println("***************");            System.out.println(Base64.encodeToString(data, Base64.DEFAULT));            System.out.println("***************");        }    };}

It works perfectly...


Just for converting from bitmap to base64 string in kotlin I use:

private fun encodeImage(bm: Bitmap): String? {        val baos = ByteArrayOutputStream()        bm.compress(Bitmap.CompressFormat.JPEG, 100, baos)        val b = baos.toByteArray()        return Base64.encodeToString(b, Base64.DEFAULT)    }