Код: Выделить всё
StreamConfigurationMap camMap = currentCamCharacteristics.get(
CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
selectedSize = selectSmallestPhotoAndPreviewSize(
camMap.getOutputSizes(ImageFormat.JPEG));
Это работает нормально, пока я не попытаюсь увеличить/обрезать изображение:
Код: Выделить всё
float maxZoom = currentCamCharacteristics.get(
CameraCharacteristics.SCALER_AVAILABLE_MAX_DIGITAL_ZOOM);
Код: Выделить всё
mPreviewRequestBuilder.set(
CaptureRequest.SCALER_CROP_REGION,
_selectedZoomCropRegion);
ОДНАКО, я решил посмотреть, что произойдет, если я выберу самый большой доступный выходной размер и сделаю то же самое, и это сработает отлично. К сожалению, для моих целей мне нужны изображения с низким разрешением.
Интересно, сталкивался ли кто-нибудь с этим раньше. Похоже, масштабирование поддерживается не для всех выходных размеров, но не знаю, почему это так и как это проверить. Я тестирую устройства Samsung под управлением Android 14.
ОБНОВЛЕНИЕ:
После долгих экспериментов кажется, что замена этого вызова на более новый версия...:
Код: Выделить всё
captureBuilder.set(CaptureRequest.CONTROL_ZOOM_RATIO, (float)_selectedZoomFactor);
Подробнее здесь: https://stackoverflow.com/questions/789 ... -capture-i