我正在开发使用Surfaceview的应用程序。我可以拍照,一切都很好。
我的问题是:预览图像太暗。我尝试更改相机的SceneMode,但没有任何效果(我尝试了AUTO,NIGHT和NIGHT_PORTRAIT)。
这是使用我的应用拍摄的照片之间的区别:
和Android Camera App(本机):
这是我的代码(在cam上使用的参数):
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);
有人可以帮助我吗?
谢谢!
最佳答案
不要锁定自动曝光;如果这样做,则相机会锁定锁定时进行的任何设置,这可能太暗了
确保预览FPS范围允许相机减慢帧频以增加曝光。最好选择10-30 fps之类的范围;查看支持的fps范围。
在完成其余工作之前,请避免设置测光区域。
Android相机应用程序绝对不使用NIGHT场景模式,因此除非您知道它在使用该应用程序的设备上做过有用的事情,否则我会避免使用它。它没有跨设备标准化。