在android中,当camra处于打开模式时,如何更改相机亮度。。?

在android中,当camra处于打开模式时,如何更改相机亮度。。?,android,camera,brightness,Android,Camera,Brightness,现在我正在使用名片阅读器应用程序,因为我想在相机处于打开模式/相机处于打开状态时更改相机图像的亮度。请告诉我需要设置哪个摄像头参数。 提前感谢。如果您的目标是API级别8或更高,您可以查看摄像头,特别是和。您应该使用它们来找到适合您需要的正确设置。并非所有设备都支持白平衡。这意味着白平衡值是自动的,所以我们不能增加或减少该值 所有支持曝光的设备。曝光的默认值为0 我们可以从摄像头api中获得最大值和最小值,如下所示 public void setExposureCompensation(int

现在我正在使用名片阅读器应用程序,因为我想在相机处于打开模式/相机处于打开状态时更改相机图像的亮度。请告诉我需要设置哪个摄像头参数。
提前感谢。

如果您的目标是API级别8或更高,您可以查看摄像头,特别是和。您应该使用它们来找到适合您需要的正确设置。

并非所有设备都支持白平衡。这意味着白平衡值是自动的,所以我们不能增加或减少该值

所有支持曝光的设备。曝光的默认值为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);

    }

 }
public void setExposureCompensation(int值){
Camera.Parameters camParams=mCamera.getParameters();
int minExpCom=camParams.getMinExposureCompensation();
int maxepcom=camParams.getMaxExposureCompensation();
//Log.i(标签“minExpCom:+minExpCom”);
//Log.i(标记“maxepcom:+maxepcom”);
如果(maxExpCom>0&&value=minExpCom){
camParams.设置曝光补偿(值);
mCamera.setParameters(camParams);
}
}
我们在最小和最大曝光之间操纵曝光值


这是唯一一个支持所有设备来控制相机亮度的选项。

您可以看到我的代码来更改相机曝光值:

// 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);
    }
}
//根据输入进度设置相机曝光值(0.0f-1.0f)
无效setEV(浮动进度){
如果(进度<0.0f&&progress>1.0f)返回;
params=mCamera.getParameters();
在我的手机上int min=params.getMinExposureCompensation();/-3
int max=params.getMaxExposureCompensation();//3在我的手机上
float realProgress=进度-0.5f;
int值;
if(realProgress<0){
值=-(int)(realProgress*2*min);
}否则{
值=(int)(realProgress*2*max);
}
//如果改变
if(值!=params.getExposureCompensation()){
参数setExposureCompensation(值);
mCamera.setParameters(参数);
}
}

您想在默认相机打开时或在您的应用程序中应用亮度更改。我想使用我的应用程序更改相机亮度。@fastque,我使用参数。setExposureCompensation(int-value)方法,但请告诉我要设置什么值作为参数。我使用值作为参数。getMaxExposureCompensation()是否正确..?您应该根据需要测试值,我不能告诉您,因为您没有提到要以何种方式更改亮度。应用程序应该调用getMinExposureCompensation和getMaxExposureCompensation,以了解是否支持曝光补偿,然后设置一个值。你得到了什么样的结果?你尝试改变白平衡了吗?@fasteque你能帮助我如何使用像vintage这样的定制相机在实时相机android上应用效果吗effect@ErumHannan选中此项:、建议答案和OpenCV库。希望这有帮助。