2013-11-28 4 views
2

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

+0

Вы хотите, чтобы применить изменения яркости, когда открывается по умолчанию камеры или в приложении .. – pavanmvn

+0

я хочу изменить яркость камеры с помощью моего приложения. –

ответ

1

Если вы ориентируетесь на уровень API 8 и выше, вы можете посмотреть на камеру parameters, в частности на white balance и exposure. Вы должны немного поиграть с ними, чтобы найти правильные настройки для своих нужд.

+0

@fastque, я использую метод parameters.setExposureCompensation (int value), но, пожалуйста, скажите, какое значение (ы) следует установить в качестве параметра. Я использовал значения как parameters.getMaxExposureCompensation(), это правильно ..? –

+0

Вы должны проверять значения на основе ваших потребностей, я не могу сказать вам, потому что вы не указали, каким образом вы хотели бы изменить яркость. Приложение должно вызвать getMinExposureCompensation и getMaxExposureCompensation, чтобы знать, поддерживается ли компенсация экспозиции, а затем задано значение. Какие результаты вы получаете? Вы пытались изменить баланс белого? – fasteque

+0

спасибо за ваш добрый ответ fasteque –

0

Баланс белого не поддерживается для всех устройств. это означает, что значение баланса белого является auto.so мы не можем увеличить или уменьшить это значение.

Все устройства, поддерживающие экспозицию. Значение по умолчанию экспозиции 0.

, и мы можем получить максимальный и минимальное значение из API камеры, как этот

public void setExposureCompensation(int value){ 

    Camera.Parameters camParams = mCamera.getParameters(); 

    int minExpCom=camParams.getMinExposureCompensation(); 
    int maxExpCom=camParams.getMaxExposureCompensation(); 

    //Log.i(TAG,"minExpCom : "+minExpCom); 
    //Log.i(TAG,"maxExpCom : "+maxExpCom); 
    if(maxExpCom>0 && value<=maxExpCom && value>=minExpCom){ 
     camParams.setExposureCompensation(value); 
     mCamera.setParameters(camParams); 

    } 

} 

мы манипулируем значение экспозиции в пределах от минимального до макс воздействие.

Это единственный вариант, поддерживающий все устройства. Для управления яркостью камеры.

0

Вы можете увидеть мой код, чтобы изменить значение экспозиции камеры:

// set Camera Exposure value from input progress (0.0f - 1.0f) 
void setEV(float progress) { 
    if (progress < 0.0f && progress > 1.0f) return; 
    params = mCamera.getParameters(); 
    int min = params.getMinExposureCompensation(); // -3 on my phone 
    int max = params.getMaxExposureCompensation(); // 3 on my phone 
    float realProgress = progress - 0.5f; 
    int value; 
    if (realProgress < 0) { 
     value = -(int) (realProgress * 2 * min); 
    } else { 
     value = (int) (realProgress * 2 * max); 
    } 
    // if changed 
    if (value != params.getExposureCompensation()) { 
     params.setExposureCompensation(value); 
     mCamera.setParameters(params); 
    } 
}