Как захватить квадратное изображение в Android? Я хочу захватить квадратное изображение (например, 300 × 300 пикселей), вызвав камеру через намерение в android, как я могу это сделать?
Как захватить пользовательский размер изображения с помощью камеры в 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:
Ответ 2
Почему никто не упомянул что-то вроде этого?
Bitmap resultBitmap = Bitmap.createBitmap(sourceBitmap, xStart, yStart, 300, 300);
где sourceBitmap является исходным захватом с камеры и xStart
и yStart
местоположением, откуда начинается обрезка. Результат должен иметь xStart
, yStart
в верхнем левом углу.