6410 camera驱动之拍照设置
来源:互联网 发布:sql server数据库集群 编辑:程序博客网 时间:2024/06/09 16:54
我们在做camera的拍照驱动时, 需要考虑到在应用程序的拍照界面, 在拍照前的帧率应该比较高而图像输出小如640x480, 这样sensor负荷才小, 否则散热不好就会变色, 在拍照那一小段时间内如500ms内, sensor要被设成帧率低尺寸大如2048x1536, 然后再设回预览模式帧率高尺寸小。
拍照时, 执行TakeStillPicture, 三星的源码中主要有以下代码
SetSensorFormat(STILL);
CameraSetRegisters(STILL_CAPTURE_BUFFER);
CameraCaptureControl(STILL_CAPTURE_BUFFER,TRUE);
实现了拍照的开启初始化。所以可修改如下:
// 1, 启动AF, 等到AF完成后函数才返回
CameraAF(TRUE);
// 2, 采集图片
CameraCaptureControl(VIDEO_CAPTURE_BUFFER,FALSE);
CameraCaptureControl(STILL_CAPTURE_BUFFER,FALSE);
CameraCaptureControl(PREVIEW_CAPTURE_BUFFER,FALSE);//设置新的拍照分辨率
CameraStill();SetSensorFormat(PREVIEW);
SetSensorFormat(STILL);CameraSetRegisters(PREVIEW_CAPTURE_BUFFER);
CameraSetRegisters(STILL_CAPTURE_BUFFER);
CameraCaptureControl(PREVIEW_CAPTURE_BUFFER,TRUE);
CameraCaptureControl(STILL_CAPTURE_BUFFER,TRUE);
这样就实现了, 拍照的初始化, 如果有闪光灯, 可以在 CameraCaptureThread 中进行开关控制, 在第1帧时打开, 在第三帧即取照片后关闭, 这样就能保证取出来的照片是在闪关时间内的, 为了体现所见即所得, 应用程序一般都是取完照片后即显示该图片1~2秒钟。
好, 取完照片后我们需要把sensor 设回预览模式。我注意到CameraCaptureThread ->pfnCameraHandleStillFrame(dwCameraDriverContext) -> CameraStillFrameCallback ........->FillBuffer, 那么在FillBuffer中memcpy(pImage, (void *)m_CameraHWStillBuffer.VirtAddr, dwRet)后面可以执行如下代码
// 1, 关闭AF
CameraAF(FALSE);CameraCaptureControl(VIDEO_CAPTURE_BUFFER,FALSE);
CameraCaptureControl(STILL_CAPTURE_BUFFER,FALSE);
CameraCaptureControl(PREVIEW_CAPTURE_BUFFER,FALSE);/ /设置新的拍照分辨率
CameraPreview();SetSensorFormat(PREVIEW);
//SetSensorFormat(STILL);
CameraSetRegisters(PREVIEW_CAPTURE_BUFFER);
//CameraSetRegisters(STILL_CAPTURE_BUFFER);
//CameraCaptureControl(STILL_CAPTURE_BUFFER,TRUE);
CameraCaptureControl(PREVIEW_CAPTURE_BUFFER,TRUE);即可实现由拍照分辨率变为预览分辨率。
---amo 原创
mzy202@126.com
- 6410 camera驱动之拍照设置
- Android之Camera拍照
- Android之Camera拍照
- Android之Camera控制拍照
- Android之Camera控制拍照
- Android之使用Camera拍照
- Camera 拍照
- camera 拍照
- Android之Camera拍照插值算法
- Android 学习之Camera拍照流程
- Android Camera开发之通过Intent拍照
- Unity3D之Camera设置
- MTK6577+Android之Camera驱动
- QML Camera 摄像头拍照(带滑动条设置焦距)
- android 驱动之 camera 驱动 GT2005
- 初学Android,多媒体之使用Camera进行拍照(七十九)
- Android实战技巧之三十一:拍照和录像 with Camera
- android开发之textureview绑定camera实现拍照功能
- ASP.NET - SiteMapPath Web 服务器控件概述
- 深入浅出SharePoint——操作Item权限类
- C#中Attributes的用法
- 电子邮件30周年纪念图表
- 12家上市银行日均净赚逾23亿 利息收入以价补量
- 6410 camera驱动之拍照设置
- Eclipse下PhoneGape开发插件的安装地址
- IT人员迅速提升自我效率的十大方法
- MyEclipse6.5安装SVN插件的三种方法
- hdu 3068 最长回文子串 Manacher算法
- C# 实现MD3算法
- SMS编码之PDU – 接收短信篇
- java中hashset的用法
- C# 实现byte 与float 之间的转换