This document explains how to control the still-image capture process.
This document explains how to control the overall image capture process and to capture a still image based on given image parameters.
Introduction
The Image Capture API allows the client to capture the still image and control the capture operation. This class lets you issue still image capture calls even if the previous capture calls are pending. To do this, you need to create another instance of this class. If you use the same instance, the handle to retrieve the previously captured still image will be lost.
The following tasks are covered during image capture implementation:
Provide implementation of McameraPreImageCaptureControl::PrepareImageCapture.
Use MpreImageCaptureControlObserver::PrepareImageComplete call-back to pass this to the client to create CCamera::CCameraImageCapture class.
Create CCamera::CCameraImageCapture object and pass it to the client, when it calls CCameraPreImageCaptureControl::PrepareImageCapture.
See also Implementation of MCameraPreImageCaptureControl class.
Request still image capture using CCamera::CCameraImageCapture object.
Perform image capture using CCamera::CCameraImageCapture::CaptureImage method. This delays the background processing involved with current image captured, so as to capture next images.
Use MCaptureImageObserver::IndividualImageControlHandle callback to provide client with the handle to control captured individual still images. This callback may be send to the client after the image is exposed to the sensor. For example, client may need to destroy the image even before the completion for some reasons.
Use MCaptureImageObserver::ImageCaptureComplete callback to inform the client that the image capture operation has been completed. This lets to use CCameraImageCapture for next still image capture.
Note:
Licensees need to provide concrete implementation of McameraImageCapture interface class.
The following example code snippets illustrate the use of the PreImageCaptureControl classes.
static_cast<MCameraPreImageCaptureControl*>(CCamPreImageCaptureControl::NewL(static_cast<CCamUnitTestPlugin&>(*this))); CCamera::CCameraImageCapture* cameraImageCapture; MPreImageCaptureControlObserver* PreImageCaptureControlObserver() {return iPreImageCaptureControlObserver;} PreImageCaptureControlObserver()->PrepareImageComplete(cameraImageCapture, err); CCamera::CCameraPreImageCaptureControl::TPrepareImageParameters& aPrepareImageParameters; MCaptureImageObserver& aCaptureImageObserver; CreateCaptureImageL(cameraImageCapture, aPrepareImageParameters, aCaptureImageObserver)); CaptureImageObserver()->IndividualImageControlHandle(*cameraImageCapture, 1);