Symbian 7.0以上的版本使用CCamera来访问摄像头。
CCamera提供了一个可用于应用程序交互和获取照相机图像的接口。 CCamera封装了一系列易于使用的API , 同时,它提供了一个MCameraObserver注册到CCamera,通知应用程序各种关键事件。必须实现 MCameraObserver的所有纯虚方法供系统在事件产生的时候回调。
要捕捉一幅图像,首先需要创建一个 CCamera的实例。调用CCamera::NewL(MCameraObserver&,TInt):
iCamera = CCamera::NewL( aObserver,0 );
然后我们需要保留照相机设备:
User::LeaveIfError(iCamera->Reserve());
这个异步函数成功返回的时候系统会调用 MCameraObserver::ReserveComplete()方法。下一步我们要通过PowerOn()函数开启它。这也是一个异步方法,当操作完成时,他调用 MCameraObserver::ReserveComplete()。
iCamera->PowerOn();
在使用CaptureImage()之前,我们需要指定图像的格式和大小。TCameraInfo::iImageFrameFormatsSupported提供对格式的支持,CCamera::EnumerateCaptureSizes()提供对大小的支持。使用CCamera:: PrepareImageCaptureL()来指定图像格式和大小。拍摄照片之前,至少调用一次该函数。
iCamera->PrepareImageCaptureL(CCamera::EFormatFbsBitmapColor4K,1);
然后我们可以照相了。
iCamera->CaptureImage();
当捕捉成功后,将调用 MCameraObserver::ImageReady()。应用程序使用完照相机后,应释放照相机。
iCamera->Release();
CCamera还提供了闪光模式、光学和数字变焦、亮度、对比度、曝光等设置功能,依赖于设备的硬件能力。
CCamera提供了一个可用于应用程序交互和获取照相机图像的接口。 CCamera封装了一系列易于使用的API , 同时,它提供了一个MCameraObserver注册到CCamera,通知应用程序各种关键事件。必须实现 MCameraObserver的所有纯虚方法供系统在事件产生的时候回调。
要捕捉一幅图像,首先需要创建一个 CCamera的实例。调用CCamera::NewL(MCameraObserver&,TInt):
iCamera = CCamera::NewL( aObserver,0 );
然后我们需要保留照相机设备:
User::LeaveIfError(iCamera->Reserve());
这个异步函数成功返回的时候系统会调用 MCameraObserver::ReserveComplete()方法。下一步我们要通过PowerOn()函数开启它。这也是一个异步方法,当操作完成时,他调用 MCameraObserver::ReserveComplete()。
iCamera->PowerOn();
在使用CaptureImage()之前,我们需要指定图像的格式和大小。TCameraInfo::iImageFrameFormatsSupported提供对格式的支持,CCamera::EnumerateCaptureSizes()提供对大小的支持。使用CCamera:: PrepareImageCaptureL()来指定图像格式和大小。拍摄照片之前,至少调用一次该函数。
iCamera->PrepareImageCaptureL(CCamera::EFormatFbsBitmapColor4K,1);
然后我们可以照相了。
iCamera->CaptureImage();
当捕捉成功后,将调用 MCameraObserver::ImageReady()。应用程序使用完照相机后,应释放照相机。
iCamera->Release();
CCamera还提供了闪光模式、光学和数字变焦、亮度、对比度、曝光等设置功能,依赖于设备的硬件能力。