【相机开发问题总结】曝光补偿ExposureCompensation未生效异常分析及解决

问题描述

做一款相机应用时,用户反馈相机预览界面太暗了,由于我们是嵌入式设备,没有手机那么高大上得闪光灯补光,因此只能考虑从软件层面提高界面亮度,还好找到了曝光补偿,但是开发过程中发现曝光补偿未生效,界面依然很黑

问题分析

什么事曝光补偿?曝光补偿是指,通过增加或者减少光线的摄入量,来提高或降低照片的亮度。

曝光补偿存在一定范围,比如-2至2,或者-3至3,单位为EV,可以理解为exposure value。

每增加或者降低1EV,光线的摄入量便增加或降低1倍。

android camera的曝光补偿为阶段性变化,每次变化1/2或1/3,该数量级被称为step。

android camera可以通过以下五个API,分别获取step,最大曝光补偿级数,最小曝光补偿级数,当前曝光补偿级数,设置曝光补偿级数。曝光补偿值=step * 曝光补偿级数。

(1)float getExposureCompensationStep()

(2)int getMinExposureCompensation()

(3)int getMaxExposureCompensation()

(4)int getExposureCompensation()

(5)void setExposureCompensation(int)

根据上述概念,我发现setExposureCompensation的值传递错误,当时是随便传值的

问题解决

先计算getMaxExposureCompensation*getExposureCompensationStep,支持最大的补偿级数,将其传递给底层

相关推荐
Zxxxxxy_13 小时前
测试入门:从 0 到 1 搞懂开发与 Bug
bug
专注VB编程开发20年2 天前
Windows API 所有老式结构体4字节对齐,但是64位VBA,Twinbasic弄成了8字节对齐,大BUG
windows·bug
IT枫斗者3 天前
前端部署后如何判断“页面是不是最新”?一套可落地的版本检测方案(适配 Vite/Vue/React/任意 SPA)
前端·javascript·vue.js·react.js·架构·bug
半天法师4 天前
Bug 记录:UE 结构体转 JSON 时 Key 字段大小写异常 (Editor 与打包后表现不一致)
ai·ue5·json·bug
张小俊_4 天前
WPF 跨线程 UI 更新与硬编码赋值引发的 Bug 排查
c#·bug·wpf
鸿儒5174 天前
记录一个C++ Windows程序移植到Linux系统的bug
开发语言·c++·bug
Python私教5 天前
HermesAgent 终端工具 Windows 兼容性修复实战:两个 Bug 的排查与解决
windows·bug
瀚高PG实验室5 天前
pgroonga全文检索插件的BUG
数据库·postgresql·bug·瀚高数据库
¥-oriented7 天前
记录使用C#编程中遇到的一个小bug
c#·bug
MaraSun8 天前
Deepseek 的一个bug
bug·deepseek