Как установить значения экспозиции и баланса белого для пользовательской камеры
Что произойдет, если я не установлю экспозицию и баланс белого при инициализации параметров камеры на пользовательской камере Android. Камеру обрабатывают сами по себе или мне нужно указать значения при инициализации камеры?
У меня были проблемы со вспышкой в прошлом, установление экспозиции и баланса белого для определенных значений помогло бы мне преодолеть эти проблемы. У меня нет никаких планов позволить пользователю вручную манипулировать настройками экспозиции и/или баланса белого.
У меня установлен следующий код:
if(isSupported(Camera.Parameters.SCENE_MODE_AUTO, mParameters.getSupportedSceneModes()))
{
mSceneMode=Camera.Parameters.SCENE_MODE_AUTO;
mParameters.setSceneMode(mSceneMode);
}
int min=mParameters.getMinExposureCompensation();
int max=mParameters.getMaxExposureCompensation();
float step=mParameters.getExposureCompensationStep();
//do i need to setExposureCompensation here??
if(mSceneMode==Camera.Parameters.SCENE_MODE_AUTO && isSupported(Camera.Parameters.FLASH_MODE_AUTO,mParameters.getSupportedFlashModes()))
{
//ususally when I let the flash fire,the image is filled with light
//all that does is make everything else undecipherable...
mFlashMode=Camera.Parameters.FLASH_MODE_AUTO;
mParameters.setFlashMode(mFlashMode);
}
if(isSupported(Camera.Parameters.WHITE_BALANCE_AUTO,mParameters.getSupportedWhiteBalance()))
{
mWhiteBalanceMode=Camera.Parameters.WHITE_BALANCE_AUTO;
mParameters.setWhiteBalance(mWhiteBalanceMode);
}
Я читал, что циклы обновления автоматического экспонирования и автоматического баланса белого прекращаются, когда применяются autoExposureLock и autoWhiteBalanceLock. Почему и как использовать эти блокировки в коде камеры?
Ответы
Ответ 1
Основываясь на моей собственной разработке, экспозиция и баланс белого по умолчанию установлены на "Авто": автоматическая экспозиция "и" автоматический баланс белого ".
Вы можете проверить поддерживаемые режимы с помощью:
mCameraParameters = mCamera.getParameters();
Log.i(TAG, "Supported Exposure Modes:" + mCameraParameters.get("exposure-mode-values"));
Log.i(TAG, "Supported White Balance Modes:" + mCameraParameters.get("whitebalance-values"));
и проверьте текущие режимы с помощью:
Log.i(TAG, "Exposure setting = " + mCameraParameters.get("exposure"));
Log.i(TAG, "White Balance setting = " + mCameraParameters.get("whitebalance"));
если вы хотите использовать другой режим, вы можете установить его так:
mCameraParameters.set("exposure", "night");
mCamera.setParameters(mCameraParameters);