我正在开发一个使用Surfaceview的应用程序。我可以拍照,一切都很好。
我的问题是:预览图像太暗。我尝试更改相机的SceneMode,但没有任何工作(我已尝试过AUTO,NIGHT和NIGHT_PORTRAIT)。
以下是使用我的应用拍摄的照片之间的区别:
和Android相机应用(原生):
这是我的代码(凸轮上使用的参数):
c = Camera.open(0);
Camera.Parameters params = c.getParameters();
params.setSceneMode(Camera.Parameters.SCENE_MODE_NIGHT);
params.setAutoExposureLock(true);
params.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
if (params.getMaxNumMeteringAreas() > 0){ // check that metering areas are supported
List<Camera.Area> meteringAreas = new ArrayList<>();
Rect areaRect1 = new Rect(-100, -100, 100, 100); // specify an area in center of image
meteringAreas.add(new Camera.Area(areaRect1, 600)); // set weight to 60%
Rect areaRect2 = new Rect(800, -1000, 1000, -800); // specify an area in upper right of image
meteringAreas.add(new Camera.Area(areaRect2, 400)); // set weight to 40%
params.setMeteringAreas(meteringAreas);
}
c.setParameters(params);
任何人都可以帮助我?
谢谢!
答案 0 :(得分:2)
不要锁定自动曝光;如果你这样做,相机会卡住你锁定它时的任何设置,这可能太暗了
确保预览FPS范围允许相机降低帧速率以增加曝光。最好选择10-30 fps的范围作为范围;看看支持的fps范围是什么。
在完成剩余工作之前,请避免设置测光区域。
Android相机应用肯定不会使用NIGHT场景模式,所以除非你知道它在你正在使用你的应用程序的设备上做了一些有用的事情,否则我会避免使用它。它不是跨设备标准化的。