Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License
"Eclipse Public License v1.0" which accompanies this distribution,
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
Nokia Corporation - initial contribution.
Contributors:
-->
<!DOCTYPE concept
PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept xml:lang="en" id="GUID-DA26D246-D74A-529F-9F81-11B45669103F"><title> Capturing Image</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document introduces to the image capture feature of the Ecam component. </p> <section><title>Purpose</title> <p>This document takes you through a series of documents that provides a detailed explanation on various tasks that can be performed using still image. </p> <p><b>Setup and Configuration Requirement </b> </p> <p>Make sure that you use continuous drive mode before capturing the images. </p> <p>Get the options supported for a specific reference orientation of the camera using <xref href="GUID-BD60287B-40A3-39D5-9C7B-7ABF976659B6.dita#GUID-BD60287B-40A3-39D5-9C7B-7ABF976659B6/GUID-E2B97E11-81E6-3041-BDDC-466AECBBEAC4"><apiname>CCamera::CCameraImageProcessing::GetSupportedRelativeOrientationOptionsL</apiname></xref> method. </p> <p>Get the options that is currently used for the orientation reference using <xref href="GUID-2D94F0AD-10D4-3C3E-B445-3728718C8765.dita#GUID-2D94F0AD-10D4-3C3E-B445-3728718C8765/GUID-48FFD990-AEA8-3066-A291-7075CD3C3200"><apiname>CCameraImageProcessing::GetCurrentRelativeOrientationOptionsL</apiname></xref> method. </p> <p>Set the specific option to be used with the orientation reference using <xref href="GUID-2D94F0AD-10D4-3C3E-B445-3728718C8765.dita#GUID-2D94F0AD-10D4-3C3E-B445-3728718C8765/GUID-B15C96F0-5C59-3FC6-BD80-CF0B96F0C024"><apiname>CCameraImageProcessing::SetRelativeOrientationOptionsL</apiname></xref> method. Notify the client about relative custom orientation setting operation using event <xref href="GUID-21F6B1EB-0AA6-3F27-A0AF-D09BAA938552.dita"><apiname>KUidECamEventImageProcessingTransformRelativeOrientation</apiname></xref>. </p> <p id="GUID-E85442CF-34BD-5140-96DF-88F414BAE3C9"><b>Basic camera image settings</b> </p> <p> <codeph>CCamera</codeph> provides functions that allow you to alter the brightness, contrast, and zoom level of the camera image. Before using such functions though, you should test that the camera supports what you want. To do this, get a <xref href="GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A.dita"><apiname>TCameraInfo</apiname></xref> object using the <xref href="GUID-74003657-1C43-382C-B722-6A6A4C03A911.dita"><apiname>CameraInfo()</apiname></xref> method. The object's <codeph>iOptionsSupported</codeph> member is a bitfield of flags that describe which options are supported by the camera. </p> <p id="GUID-96B5AB3A-B83D-5F6A-9A51-2A3BBF18FED3"><b>Brightness</b> </p> <p>To change the camera image brightness: </p> <ol id="GUID-3E4387F5-9B44-5E80-AE67-4F8BC8E24EC6"><li id="GUID-76DAC348-E4A3-59A2-9BFD-DD9D1C5F4B7D"><p>Check if brightness control is supported, by testing if the <xref href="GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A.dita#GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A/GUID-6837A8FB-63FF-345E-808A-67537E8E1190"><apiname>TCameraInfo::EBrightnessSupported</apiname></xref> flag is set in the options. </p> </li> <li id="GUID-572AB80E-47F4-5608-8241-3C1E7065C309"><p>Set the brightness using <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-22722C7A-229A-3BD5-8639-D4A6450B26E1"><apiname>CCamera::SetBrightnessL()</apiname></xref>. </p> <p>The brightness should be in the range -100 to +100, or to set the brightness automatically, use the flag <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-DABFFB10-D6D7-384A-8527-D82DE96AD8C4"><apiname>CCamera::EBrightnessAuto</apiname></xref>. </p> </li> </ol> <p id="GUID-F3A35365-B654-552D-8F27-42C6368BB0D7"><b>Contrast</b> </p> <p>To change the camera image contrast: </p> <ol id="GUID-6F000E09-34AF-5484-960C-709E24420EBC"><li id="GUID-BA85FA15-A58D-5B35-859C-63CD1357452A"><p>Check if contrast control is supported, by testing if the <xref href="GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A.dita#GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A/GUID-892E8762-9C54-3A61-921B-894283F5AE69"><apiname>TCameraInfo::EContrastSupported</apiname></xref> flag is set in the options. </p> </li> <li id="GUID-9ED91DD5-6DCB-58CE-A30D-F9D8252CEEA3"><p>Set the contrast using <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-8F8DE11C-4350-3010-8B28-A635C82E4214"><apiname>CCamera::SetContrastL()</apiname></xref>. </p> <p>The contrast should be in the range -100 to +100, or to set the contrast automatically, use the flag <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-FAC16D18-6860-347E-8238-4CE1998442F0"><apiname>CCamera::EContrastAuto</apiname></xref>. </p> </li> </ol> <p id="GUID-27DB4187-E958-5468-952B-648F99A9FB7D"><b>Zoom</b> </p> <p>To alter the camera zoom: </p> <ol id="GUID-AEC745DF-D86E-53A0-A630-6AC0BA2FA652"><li id="GUID-E9820A2A-0A52-5A1F-920F-E46C30F73B33"><p>Test if zoom is supported, and for what range of values, by reading the minimum and maximum zoom values from the data members in <xref href="GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A.dita"><apiname>TCameraInfo</apiname></xref>. A value of zero means zoom is not supported. A step of one in the zoom value corresponds to the smallest zoom change available. The camera zoom increases linearly with the zoom value until the maximum zoom value. </p> <p>A separate set of values is available for zoom and for digital zoom. <xref href="GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A.dita"><apiname>TCameraInfo</apiname></xref> also has members that say what is the actual zoom factor when at minimum (non-digital only) and maximum zoom. </p> </li> <li id="GUID-E7506196-7BCB-507F-93C1-FFAEF101107A"><p>Set the zoom using <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-4C9E5871-DCA5-34A0-AE48-7EE70EDAECD0"><apiname>CCamera::SetDigitalZoomFactorL()</apiname></xref> or <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-AA36BA0C-C7B3-3ADD-9311-901EEE13C126"><apiname>CCamera::SetZoomFactorL()</apiname></xref>. </p> </li> </ol> <p id="GUID-AAFB3767-837A-58BC-89DC-96B74D58EE9A"><b>Image format</b> </p> <p>Before a client application captures still, or video, it can first specify the required image format. There may be complicated dependencies between frame sizes and formats, so the required format must be specified as follows: </p> <ol id="GUID-D82A3BAB-C1C0-55DE-BEAF-CCDBC7FA5FD1"><li id="GUID-629D54E0-47A4-556D-B1B7-BED86FF8A8EE"><p>Select the format from those available from either the <xref href="GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A.dita#GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A/GUID-A35EC9D8-EF63-3714-9FFC-915586E75C8A"><apiname>TCameraInfo::iImageFormatsSupported</apiname></xref> or the <xref href="GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A.dita#GUID-644E96EC-EFDC-335D-B2B6-A1BDB8538C0A/GUID-7F9299CF-9C4C-3FBF-B818-08C93D356652"><apiname>TCameraInfo::iVideoFrameFormatsSupported</apiname></xref> bitfield, for still or video images respectively. </p> </li> <li id="GUID-6E427A4A-1DC4-595F-A7AA-D3BD0A4C59B7"><p>Select the required size using either <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-4248DD3D-17D9-3EBE-92F9-4FD365AE027E"><apiname>CCamera::EnumerateCaptureSizes()</apiname></xref> or <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-C52FB21D-60EE-3202-BB50-ABDF4CDF3DB4"><apiname>CCamera::EnumerateVideoFrameSizes()</apiname></xref> for still or video images respectively. Note that not all possible sizes are guaranteed to be supported for any given format. Unsupported sizes will be returned as (0,0). </p> </li> <li id="GUID-32D3E2AA-68D5-5734-8D2A-267320796AB0"><p>For video capture, select the frame rate using <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-F3C6E294-1EF2-3BB4-B1FC-87194DA1D6CA"><apiname>CCamera::EnumerateVideoFrameRates()</apiname></xref>. Again, not all rates are guaranteed to be supported, as dependencies may exist in the camera between the format, size, exposure mode and rate. </p> </li> </ol> </section> <section><title>Image Capture </title> <p>The Image Capture API allows you to do the following tasks: </p> <ul><li id="GUID-A41DE9A8-849C-50F6-83F0-91B93B1FDAAC"><p>Pre-image capture control </p> </li> <li id="GUID-A4AC45AF-8F96-528E-B9F4-5E32D7FC292E"><p>Capturing image </p> </li> <li id="GUID-D2FEC3AC-1ED6-5029-A4EA-A2A5949CA420"><p>Post-image capture control </p> </li> <li id="GUID-437F59EB-0302-5C90-9CCD-D3DEC9B7C616"><p>Control of burst image capture </p> </li> </ul> </section> <section><title>See also</title> <p><xref href="GUID-9014ED9B-B0A0-5C95-9C5B-7D2F658C757F.dita">Accessing and Power Control of Camera</xref> </p> <p><xref href="GUID-FAB548CF-24EB-52D1-A7A1-9446BA67C7A5.dita">Camera Preset Support</xref> </p> <p><xref href="GUID-6C8507F7-FE70-5654-91B5-53E356CFF67C.dita"> Controlling Pre-Image Capture </xref> </p> <p><xref href="GUID-BFDDCE4E-FE4F-5815-9D0B-A0967EA53B11.dita">Controlling Still-image Capture</xref> </p> <p><xref href="GUID-3C3BBE1F-D7A2-5021-830B-78084334C883.dita">Controlling Captured Image</xref> </p> <p><xref href="GUID-36BD6059-6547-5754-8BE0-F8051A838C14.dita">Using Time-Nudge-Capture Drive Mode</xref> </p> </section> </conbody></concept>