Размер растрового изображения, возвращаемого камерой через намерение?

Как получить с камеры растровое изображение с определенным (подходящим для памяти )размером?

Я начинаю намерение камеры с:

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
cameraIntent.putExtra("return-data", true);

photoUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "mytmpimg.jpg"));
cameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, photoUri);        

startActivityForResult(cameraIntent, REQUEST_CODE_CAMERA);

Я обрабатываю результат здесь:

//  Bitmap photo = (Bitmap) intent.getExtras().get("data");

Bitmap photo = getBitmap(photoUri);

Теперь, если я использую закомментированную строку -, получаю растровое изображение напрямую, я всегда получаю растровое изображение размером 160 x 120, а это слишком мало. Если я загружаю его из URI, используя некоторые стандартные вещи, которые я нашел (метод getBitmap ), он загружает растровое изображение 2560 x 1920 (! )и потребляет почти 20 мб памяти.

Как мне загрузить, скажем, 480 x 800 (того же размера, который показывает предварительный просмотр камеры )?

Без загрузки 2560 x 1920 в память и уменьшения масштаба.

13
задан Ixx 29 July 2012 в 13:17
поделиться