This document introduces you to creating a snaphot.
This document describes the various APIs used to create a snapshot.
Introduction
Snapshot shows the captured images on the display almost instantaneously. Snapshots may be created for video as well and the client may further specify the video frames from which the snapshot can be generated.
The client can specify the properties of the snapshot, such as size, background colour and position to be used if the snapshot has been scaled, etc. Snapshot can be taken using both direct viewfinder and client viewfinder.
If client snapshot is required, use CCamera::CCameraSnapshot. Client needs to call CCamera::CCameraImageCapture::GetSnapshotHandleL() or CCamera::CCameraVideoCaptureControl::GetSnapshotHandleL() depending on the requirement.
MImplemetationFactory provides handles to concrete implementation for MCameraSnapshot or MCameraSnapshot2 derived class. Every CCameraSnapshot object gets tied to the specific client viewfinder handle through MCameraSnapshot2::SetClientViewFinderId().
If direct snapshot is required, use CCamera::CCameraDirectSnapshot. Client needs to call CCameraV2DirectViewFinder::GetDirectSnapshotHandleL(). Concrete implementation of MCameraV2DirectViewFinder object provides the handle to the concrete implementation for the MCameraDirectSnapshot object. Reference to the CCameraV2DirectViewFinder object is passed to the concrete implementation for MCameraDirectSnapshot derived object.
Setup and Configuration Requirements
To need to use Snapshot you need to use McameraObserver2 interface.
You need to create instance of this class from image capture or video capture control class object. This allows better handling of snapshot features by tying it closely to the given image or video capture object.
You need to call this class when the camera is ready and the image is captured or the buffer of captured video data is ready.
Note: You should not create the instance of this class directly.
You can perform the following tasks using the CcameraSnapshot interface.
Getting Supported formats: Get the list of supported formats using CCamera::CCameraSnapshot::SupportedFormats().
Preparing Snapshot: Prepare snapshot data using CCameraSnapshot::PrepareSnapshotL().
Retrieving Snapshot status: Retrieve snapshot status using CCamera::CCameraSnapshot::GetSnapshotStatusL().
Enabling Snapshot: Enable snapshot using CCamera::CCameraSnapshot::EnableSnapshotL().
Disabling Snapshot: Disable snapshot using CCamera::CCameraSnapshot::DisableSnapshotL()
Getting Snapshot Data: Get the snapshot data using CCamera::CCameraSnapshot::SnapshotDataL().
You can also perform the above tasks using CCamera::CCameraDirectSnapshot interface. Licensees can implement extra features on snapshot using MCameraSnapshot2 interface.
Types of Snapshot