Как управлять выдержкой и диафрагмой камеры в Android?
Я хотел бы управлять выдержкой или диафрагмой камеры в Android, но я ничего не нашел по этому поводу.
Проблема в следующем: мне нужно сделать снимок в режиме макросъемки со вспышкой, но на более новых смартфонах свет вспышки слишком сильный, и изображения почти переэкспонированы. Я пробовал звонки с компенсацией экспозиции, но этого недостаточно.
Используя программное обеспечение "Камера", я замечаю, что приложение управляет апертурой камеры и может делать хорошие макрокадры, даже если вспышка включена, поэтому я думаю, что есть способ сделать это, можете ли вы мне помочь?
Я использую как Samsung Nexus S, так и Samsung Galaxy W. С Samusng Galaxy ACE проблем с белым изображением не существует: в этом случае кажется, что перед съемкой есть какая-то аппаратная калибровка мощности света.
Большое спасибо!
3 ответа
Извините, что довел это до вас, но эта функция просто не поддерживается и дата выхода не запланирована.
Смотрите функцию / отчет об ошибке:
С помощью API Camera 1 на стороне Android невозможно вручную установить один из двух упомянутых параметров напрямую. Ни один из признаков не может быть запрошен с помощью стандартного метода, потому что он не поддерживается.
Конечно, есть способ обойти запрос или установить такие свойства с помощью специальных методов:
// query all the settings you camera support (API 1)
mCamera.getParameters().flatten();
// set parameters - e.g. aperture
mCamera.getParameters().set("aperture", "80");
Но следующая вещь заключается в том, что конкретное устройство должно поддерживать такую настройку, которая варьируется от устройства к устройству. На некоторых устройствах могут быть установлены определенные значения, а с другими вы не можете и можете использовать только "автоматический" режим.
Кроме того, строки конфигурации (например, "апертура") и диапазон возможных значений на устройствах различны. По этой причине они разработали API-интерфейс Camera 2, который более стандартизирован и поддерживает такие функции. Кроме того, гораздо проще установить или запросить специальные конфигурации.
Экспозиция
Обычно все мобильные устройства имеют встроенный элемент управления экспозицией и называется элементом управления автоматической экспозицией (AE). С помощью АЭ устройство автоматически контролирует экспозицию изображения по умолчанию и выравнивает изображение над или под экспонированным изображением.
Зона замера (MA) и значение экспозиции (EV) - компенсация могут помочь.
// Android (API 1)
mCamera.getParameters().setMeteringAreas(List<Camera.Area> meteringAreas);
mCamera.getParameters().setExposureCompensation(int value);
Извините, что поздно, но может быть полезно для других
Чтобы установить диафрагму:
Camera.Parameters params = camera.getParameters ();
params.set ("mode", "m");
params.set ("диафрагма", "28"); // может быть 28 32 35 40 45 50 56 63 71 80 по умолчанию zoom