在Camera Preview中更改对比度 - Android

时间:2015-01-14 06:31:06

标签: android android-camera

可以更改Android中相机预览的对比度吗?我一直在寻找怎么做,但我只看到如何改变图像的对比度。

2 个答案:

答案 0 :(得分:1)

除曝光补偿和白平衡外,您实际上可以设置对比度参数本身。检查参数"对比"支持相机参数扁平阵列,并根据您可以做出决定。以下是一个这样的例子,

    Camera.Parameters camParams = mCamera.getParameters();
    String parmListStr = camParams.flatten();
    String[] parms = parmListStr.split(";");
    int maxContrast = 0, curContrast = 0, newContrast = 0;
    for(String str:parms){
        if(str.contains("max-contrast=")){
            String[] values = str.split("=");
            maxContrast = Integer.getInteger(values[1]);
        } else if (str.contains("contrast=")){
            String[] values = str.split("=");
            curContrast = Integer.getInteger(values[1]);
        }
    }

    if (maxContrast > 0 && curContrast >= 0){
        //calculate contrast as per your needs and set it to camera parameters as below
        newContrast = (curContrast + 1) < maxContrast? (curContrast + 1): maxContrast;
        camParams.set("contrast", newContrast);
        mCamera.setParameters(camParams);
    }

在上面的例子中&#34;对比&#34;和&#34; max-contrast&#34;是相机参数键(来自nexus4)。这些不是标准的,它们可能会从一个设备更改为另一个设备。但根据我的观察,这些是所有制造商使用的常用密钥。也许你可以对不同的设备做更多的研究,以完成整套密钥并根据它编写逻辑。

答案 1 :(得分:0)

控制白平衡和曝光有两种方法,除非您使用第三方库,否则直接控制对比度是不可用的。最受认可的是OPENCV for Android

以下是两种方法,可以作为相机参数传递

setWhiteBalance() or setExposureCompensation()