data.getExtras (). get ("data") результат изображения с низким разрешением в Android - PullRequest
13 голосов
/ 14 мая 2011

В моем приложении я делаю снимок с камеры, а затем заставляю это изображение выполнять некоторые операции по обработке изображения на том же изображении, но когда я получаю это изображение с помощью data.getExtras (). Get ("data"), изображение приходит снизкое разрешение, не реальное разрешение.В чем может быть причина проблемы?

Код такой;

    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");

Ответы [ 2 ]

12 голосов
/ 05 ноября 2011

Могучий прибил его. Без включения дополнений вы получите только маленькое изображение. Из документации Android:

публичная статическая конечная строка ACTION_IMAGE_CAPTURE С тех пор: Уровень API 3

Стандартное намеренное действие, которое можно отправить, чтобы приложение камеры захватило изображение и вернуло его.

Вызывающий может передать дополнительный EXTRA_OUTPUT, чтобы указать, где будет записано это изображение. Если EXTRA_OUTPUT отсутствует, то изображение небольшого размера возвращается в качестве растрового объекта в дополнительное поле. Это полезно для приложений, которым нужно только небольшое изображение. Если EXTRA_OUTPUT присутствует, то полноразмерное изображение будет записано в значение Uri EXTRA_OUTPUT.

9 голосов
/ 14 мая 2011

Перед трансляцией вы должны включить в нее дополнительные материалы:

intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri);

где imageFileUri может быть именем файла вывода на SD-карте:

imageFileUri=Uri.parse("file:///sdcard/picture.jpg");

Это сохранит изображение в известном месте, и после съемки вы сможете его обработать.

...