Как захватить нестандартный размер изображения с помощью камеры в Android? - PullRequest
15 голосов
/ 25 апреля 2011

Как сделать квадратное изображение в Android?Я хочу захватить квадратное изображение (например, 300x300 пикселей), вызвав Camera с помощью намерения в Android, как я могу это сделать?

Ответы [ 2 ]

8 голосов
/ 25 апреля 2011

EDIT: Это устарело начиная с уровня API 21.

Использование вложенного класса Camera.Size

http://developer.android.com/reference/android/hardware/Camera.Size.html

Из ссылки на андроид:

http://developer.android.com/reference/android/hardware/Camera.html

Обзор класса

Класс Camera используется для установки параметров захвата изображений, запуска / остановки предварительного просмотра, создания снимков и получения кадров для кодирования видео. Этот класс является клиентом для службы камеры, которая управляет фактическим оборудованием камеры.

Убедитесь, что размер поддерживается камерой (и, скорее всего, это не так). Если нет, сделайте снимок с ближайшим разрешением и обрежьте его или измените его размер.

Camera myCamera = Camera.open(0);
List<Camera.Size> sizes = myCamera.getPArameters().getSupportedPictureSizes();

Чтобы узнать о намерениях камеры, проверьте эти вопросы уже в SO:

Намерение камеры Android

Цель камеры Android

5 голосов
/ 22 марта 2012

Почему никто не упомянул что-то подобное?

Bitmap resultBitmap = Bitmap.createBitmap(sourceBitmap, xStart, yStart, 300, 300);

, где sourceBitmap - исходный снимок с камеры и xStart и yStart место, откуда начнется обрезка.Результат должен иметь xStart, yStart в верхнем левом углу.

...