0

I select image from gallery and take image through camera.The code is following:

ib2 = (ImageButton) findViewById(R.id.imageButton2);
        ib2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(cameraIntent, CAMERA_REQUEST);
            }
        });


private static final int PICK_IMAGE = 150;
    Uri imageUrl;

    private void openGallery() {

        Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
        startActivityForResult(intent, PICK_IMAGE);
    }

    @Override
    protected void onActivityResult(int requestcode, int resultcode, Intent data) {
        super.onActivityResult(requestcode, resultcode, data);
        if (resultcode == RESULT_OK && requestcode == PICK_IMAGE) {
            imageUrl = data.getData();
            try {

                Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),imageUrl );
                // Log.d(TAG, String.valueOf(bitmap));

                ImageView imageView = (ImageView) findViewById(R.id.imageView);
                imageView.setImageBitmap(bitmap);

            } catch (IOException e) {
                e.printStackTrace();
            }
           // im.setImageURI(imageUrl);

        }
        if (requestcode == CAMERA_REQUEST && resultcode == RESULT_OK) {
            Bitmap photo;
            photo = (Bitmap) data.getExtras().get("data");
            im.setImageBitmap(photo);//set image to Imageview


        }
    }

Then trying to convert this image into base 64 string. The code is following:

private String imageToString(){
        Bitmap photo = null;
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        photo.compress(Bitmap.CompressFormat.JPEG, 100, baos);
        byte[] imageBytes = baos.toByteArray();
        String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
        return encodedImage;
}

Then send the data to another activity. The code is following:

 Intent next = new Intent(MainActivity.this, EventAdding.class);

                        Bundle bn = new Bundle();
                        bn.putString("image", imageToString());
    startActivity(next);

The problem is that I am unable to synchronize all those program. The converting image string data don't send perfectly to the next activity.Image data don't send. when I was trying to show the image, a blank image is shown. Please, inform me the correct code

Zoe
  • 27,060
  • 21
  • 118
  • 148

2 Answers2

0

you can send image from one activity to other activity using the following code..

Bitmap bitmap = youimage
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("image", bitmap);
startActivity(intent);

now get the image in the secondActivity like this.

 Bitmap bitmap = (Bitmap) intent.getParcelableExtra("image");

Then display bitmap in ImageView.

Muhammad Tufail
  • 326
  • 5
  • 14
0

You can use the intent.getParcelableExtra(key) method

sdfbhg
  • 109
  • 5