Как захватить пользовательский размер изображения с помощью камеры в Android?

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

Ответы

Ответ 1

EDIT: Это не рекомендуется с API-уровня 21.

Использовать вложенный класс Camera.Size

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

От справки android:

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

Обзор класса

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

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

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

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

Цель камеры для Android

Андроид для установки камеры

Ответ 2

Почему никто не упомянул что-то вроде этого?

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

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