In my app I take a picture from camera and then I get that picture to do some image processing operations on same picture but when I get this picture with data.getExtras().get("data") , picture come with low resolution not real taken resolution. What can be reason of the problem?
Code is like that;
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent , CAMERA_PIC_REQUEST);
}
protected void onActivityResult(int requestCode , int resultCode , Intent data )
{
if( requestCode != 0)
{
ImageView image = (ImageView)findViewById(R.id.imageView1);
thumbnail = (Bitmap)data.getExtras().get("data");
Mightier nailed it. Without including extras you only get a small sized image. From the Android documentation:
public static final String ACTION_IMAGE_CAPTURE
Since: API Level 3
Standard Intent action that can be sent to have the camera application capture an image and return it.
The caller may pass an extra EXTRA_OUTPUT to control where this image will be written. If the EXTRA_OUTPUT is not present, then a small sized image is returned as a Bitmap object in the extra field. This is useful for applications that only need a small image. If the EXTRA_OUTPUT is present, then the full-sized image will be written to the Uri value of EXTRA_OUTPUT.
Before broadcasting intent, you should include extras to it:
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri);
where imageFileUri could be output file name on SD card:
imageFileUri=Uri.parse("file:///sdcard/picture.jpg");
That would save image to known location and after taking image you would be able to process it.