2012-07-11 71 views

回答

2

看看在Camera.Parameters类。

它具有相机支持的所有功能。可能setExposureCompensation。 我对摄影了解不多,但我的猜测是曝光补偿正在改变光圈或速度。

这可能是你所提到的工具使用捆绑的本地库。还有看看Camera.Parameters类中的函数如何工作(查看android源代码)。

你也可以使用环境光传感器来获得在单位勒克斯光照水平(如果这是你的项目的范围之内)。从Android文档:

Sensor.TYPE_LIGHT:

值[0]:在SI单位勒克司的环境光水平

Android Developer: Light Sensor-Sensor Event

您可以找到有关光传感器的更多信息在文档中。

Android Developer: Sensor

+0

怎么样用相机感谢 – 2012-07-11 09:45:03

+1

感应光我做了一个编辑我的答案,看看的这些功能的来源将为您提供有关光线感应的指示。 – Orlymee 2012-07-11 09:47:14

3

Android相机API不提供它捕获图像数据的任何绝对单位。此外,它不允许手动控制曝光或光圈(尽管基本上所有手机相机都没有可调光圈)。

您可以从JPEG EXIF中找出用于静止拍摄的曝光时间,但就是这样。

由于这些限制,您将很难从捕获的相机图像获取绝对光线测量。您可以校准给定的设备以将图像像素值转换为真实的光照水平,但由于所有设备都运行自动曝光和自动白平衡,因此会变得复杂。使用Android 4.0中引入的自动曝光和自动白平衡锁定会有所帮助,但勒克斯和捕获的像素值(不仅仅是比例因子,它是伽玛曲线)之间仍存在未知的转换曲线。