Захват изображений Android с сохранением небольших размеров на Milestone - PullRequest
2 голосов
/ 07 июля 2010

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

Код в основном выглядит следующим образом:

File file = new File( Environment.getExternalStorage() + "myimages/",
"my_image.jpg" );

Uri outputUri = Uri.fromFile( file );

Intent intent = new
Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
Intent.putExtra( MediaStore.EXTRA_OUTPUT, outputUri );

Это прекрасно работает намой дроид.Изображения последовательно сохраняются в 2592x1936.Однако при тестировании на Milestone изображения сохраняются в гораздо меньших размерах, таких как 320x240 и 1280 x 1900. Используя adb logcat, я вижу, что размер изображения устанавливается сразу после съемки.

Похоже, на Milestone есть настройка по умолчанию, вызывающая такое поведение.

Любая помощь будет принята с благодарностью.

Спасибо, ~ Джереми

1 Ответ

1 голос
/ 13 декабря 2011

Каждый телефон имеет собственное приложение для камеры, написанное производителем.Каждое приложение камеры решает, сколько изменить размер и / или сжать любые снятые изображения.Если вы тестируете на большем количестве телефонов, вы, вероятно, обнаружите, что вы получаете различные размеры и качества изображения.Пока вы используете намерения, решать, что делать с ним, зависит от того, какое действие выберет пользователь для обработки этого намерения (которое всегда может отличаться от приложения камеры по умолчанию).Вы хотите установить определенный размер или качество изображения, вам нужно написать свою собственную деятельность камеры.Имейте в виду, что разные телефоны будут иметь разное оборудование, которое в любом случае снимает изображения с огромным разнообразием разрешений.У вас должно получиться лучше, чем 320x240, но вы не сможете получить одинаковый размер для всех телефонов, потому что аппаратное обеспечение отличается.

...