Symbian3/PDK/Source/GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-7-1-18-1-1-4-1-7-1.dita
changeset 1 25a17d01db0c
child 3 46218c8b8afa
equal deleted inserted replaced
0:89d6a7a84779 1:25a17d01db0c
       
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE concept
       
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <concept id="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-7-1-18-1-1-4-1-7-1" xml:lang="en"><title>ICLExample:
       
    13 Decoding/Encoding an image using the Image Conversion Library</title><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    14 <p>This example application demonstrates how to convert still images, stored
       
    15 in files or descriptors, to and from bitmap objects using the Image Conversion
       
    16 Library (ICL) API. It is located in the folder <filepath>examples\Multimedia\ICL\ICLExample</filepath>. </p>
       
    17 <p>The overview contains the following sections: </p>
       
    18 <ul>
       
    19 <li id="GUID-70281B70-B9AB-5F9A-9BA6-B0BF59ECC920-GENID-1-7-1-18-1-1-4-1-7-1-2-3-1"><p><xref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-7-1-18-1-1-4-1-7-1.dita#GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-7-1-18-1-1-4-1-7-1/GUID-647B9A06-3049-516A-962B-65FA9DBB47F8-GENID-1-7-1-18-1-1-4-1-7-1-2-4">Description</xref>  </p> </li>
       
    20 <li id="GUID-8E979A69-630A-592F-A5A0-1C52ED0FFF19-GENID-1-7-1-18-1-1-4-1-7-1-2-3-2"><p><xref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-7-1-18-1-1-4-1-7-1.dita">Class summary</xref>  </p> </li>
       
    21 <li id="GUID-A01E2A97-0181-5F3E-AEAB-C23EAAC17507-GENID-1-7-1-18-1-1-4-1-7-1-2-3-3"><p><xref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-7-1-18-1-1-4-1-7-1.dita#GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-7-1-18-1-1-4-1-7-1/GUID-F1138207-7784-508F-9459-00D5AF1E2296-GENID-1-7-1-18-1-1-4-1-7-1-2-7">Build</xref>  </p> </li>
       
    22 <li id="GUID-DE2CD182-FA6C-5678-8DFC-67CB19F45499-GENID-1-7-1-18-1-1-4-1-7-1-2-3-4"><p><xref href="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-7-1-18-1-1-4-1-7-1.dita">Example code</xref>  </p> </li>
       
    23 </ul>
       
    24 <section id="GUID-647B9A06-3049-516A-962B-65FA9DBB47F8-GENID-1-7-1-18-1-1-4-1-7-1-2-4"><title>Description</title> <p>The
       
    25 example application demonstrates how to encode, decode, rotate and scale an
       
    26 image using the plug-ins provided by ICL. It covers the following scenarios: </p> <ul>
       
    27 <li id="GUID-F9DDC56D-CD21-5CBF-9485-D89E06A60FAC-GENID-1-7-1-18-1-1-4-1-7-1-2-4-3-1"><p>Decoding an image format
       
    28 from a descriptor or a file </p> </li>
       
    29 <li id="GUID-55D04700-D816-5EC7-A3A1-0F44C1EFF8D5-GENID-1-7-1-18-1-1-4-1-7-1-2-4-3-2"><p>Encoding an image format
       
    30 into a descriptor </p> </li>
       
    31 <li id="GUID-FF25D3AA-FAB0-51F1-ACE8-4F052DAEE3EE-GENID-1-7-1-18-1-1-4-1-7-1-2-4-3-3"><p>Rotating a bitmap </p> </li>
       
    32 <li id="GUID-184C07E7-EDD6-56B9-8E81-A8724A00535A-GENID-1-7-1-18-1-1-4-1-7-1-2-4-3-4"><p>Scaling a bitmap with
       
    33 or without a mask. </p> </li>
       
    34 <li id="GUID-212AC95D-644C-5CEC-A52F-0C344AF01A94-GENID-1-7-1-18-1-1-4-1-7-1-2-4-3-5"><p>Stiching images together
       
    35 to form a panorama </p> </li>
       
    36 <li id="GUID-034A7112-AA13-509B-AE59-1B20C905A9A0-GENID-1-7-1-18-1-1-4-1-7-1-2-4-3-6"><p>Various image processing
       
    37 techniques </p> </li>
       
    38 <li id="GUID-8632CD10-43A3-57E0-BBF2-45BD04CFE108-GENID-1-7-1-18-1-1-4-1-7-1-2-4-3-7"><p>Various image transformation
       
    39 techniques </p> </li>
       
    40 <li id="GUID-3126D256-DA5D-5715-9C94-F65AE488ADF9-GENID-1-7-1-18-1-1-4-1-7-1-2-4-3-8"><p>Working with Scalado
       
    41 SpeedView objects(Spmo) inside an image </p> </li>
       
    42 </ul> <p> <b>Note:</b> An ECom session is started internally by the ICL framework,
       
    43 as it uses the ECom framework. The session is ended by calling the <xref href="GUID-1344F049-81C4-3D17-AF46-8B5584680ADB.dita#GUID-1344F049-81C4-3D17-AF46-8B5584680ADB/GUID-1AACEF53-2CAD-34EC-A485-CE49BC8B9BD8"><apiname>REComSession::FinalClose()</apiname></xref> function. </p> <p><b>Decoding
       
    44 an image format from a descriptor or a file</b> </p> <p>The application creates
       
    45 and initialises a decoder (<xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref>) object to decode
       
    46 either from a descriptor or a file to a bitmap. It uses the <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-00FB83E8-3759-32BE-B6E8-6F04EC60A909"><apiname>CImageDecoder::DataNewL()</apiname></xref> and <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-6DA07559-7DDC-32A9-9E09-D557348D46DE"><apiname>CImageDecoder::FileNewL()</apiname></xref> functions to specify the descriptor and file image sources respectively.
       
    47 After the source is specified, the application creates a bitmap (<xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref>)
       
    48 object to store the decoded image. Finally, the <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-8118AC37-471E-3CB6-9F71-4E93507DDE57"><apiname>CImageDecoder::Convert()</apiname></xref> function
       
    49 is called to start decoding process. </p> <p>Apart from decoding an image
       
    50 from a file or a descriptor to a bitmap, the example application also demonstrates
       
    51 the following: </p> <ul>
       
    52 <li id="GUID-A9AF5D36-6757-53C7-8C33-3508A15A1235-GENID-1-7-1-18-1-1-4-1-7-1-2-4-8-1"><p>decoding a JPEG image
       
    53 to a YUV format image frame using a <xref href="GUID-7FA5A371-6171-3CA5-976A-20959D34DFC6.dita"><apiname>CJPEGImageFrameDecoder</apiname></xref> object.
       
    54 Before starting the decoding process by calling the <xref href="GUID-7FA5A371-6171-3CA5-976A-20959D34DFC6.dita#GUID-7FA5A371-6171-3CA5-976A-20959D34DFC6/GUID-EFB3F4C9-DDE1-359A-8326-71ECFEAF6759"><apiname>CJPEGImageFrameDecoder::ConvertFrame()</apiname></xref> function,
       
    55 the <xref href="GUID-7FA5A371-6171-3CA5-976A-20959D34DFC6.dita#GUID-7FA5A371-6171-3CA5-976A-20959D34DFC6/GUID-616A39D6-ED24-34B8-93CB-A6FAB4B0C734"><apiname>CJPEGImageFrameDecoder::RecommendedBufferSize()</apiname></xref> function
       
    56 is called to find out whether the image supports YUV format or not. </p> </li>
       
    57 <li id="GUID-6845715A-5095-5628-97F3-DA0D93E61B80-GENID-1-7-1-18-1-1-4-1-7-1-2-4-8-2"><p>accessing the thumbnail
       
    58 and Exif (Exchangeable Image File Format) metadata of a JPEG image using a <xref href="GUID-52969E30-A244-3A27-8182-FE105FEDABD7.dita"><apiname>CJPEGExifDecoder</apiname></xref> object </p> </li>
       
    59 <li id="GUID-10F30C96-210C-511C-9008-706AD3A99859-GENID-1-7-1-18-1-1-4-1-7-1-2-4-8-3"><p>decoding a JPEG image
       
    60 thumbnail to a bitmap </p> </li>
       
    61 <li id="GUID-6FF227DC-2C7C-5DD2-81C5-DC5F118BC503-GENID-1-7-1-18-1-1-4-1-7-1-2-4-8-4"><p>decoding an image to
       
    62 bitmaps of different sizes using the <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-1A1E7557-A6C7-3681-B71B-40D8489F5AFD"><apiname>CImageDecoder::ReductionFactor()</apiname></xref> and <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-6127DC9C-5AFD-3BD8-A345-49EA2057360B"><apiname>CImageDecoder::ReducedSize()</apiname></xref> functions </p> </li>
       
    63 <li id="GUID-215B6A79-E878-5556-845E-4FFB6BB1BBE5-GENID-1-7-1-18-1-1-4-1-7-1-2-4-8-5"><p>decoding an image in
       
    64 a separate thread using the <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-23C9224C-1A13-30A2-92F1-12694198EE52"><apiname>CImageDecoder::EOptionAlwaysThread</apiname></xref> option </p> </li>
       
    65 <li id="GUID-1F4C0BD0-C550-513F-937B-8297B69A029F-GENID-1-7-1-18-1-1-4-1-7-1-2-4-8-6"><p>decoding a multi-frame
       
    66 GIF image to bitmap </p> </li>
       
    67 <li id="GUID-2AB1A762-CDA3-5072-8D93-56D4BB3D78C5-GENID-1-7-1-18-1-1-4-1-7-1-2-4-8-7"><p>decoding a GIF image
       
    68 to a bitmap with a mask </p> </li>
       
    69 <li id="GUID-28D62885-CDAF-50F9-9133-0A5EE5CF8D59-GENID-1-7-1-18-1-1-4-1-7-1-2-4-8-8"><p>displaying comments
       
    70 attached to the image and its frames, using the <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-F7CADA2E-4B76-3B23-B5CA-92CD652E9A97"><apiname>CImageDecoder::ImageCommentL()</apiname></xref> and <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita#GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4/GUID-28A8EF22-C0C8-32BB-B9F3-96588F63A321"><apiname>CImageDecoder::FrameCommentL()</apiname></xref> functions. </p> </li>
       
    71 </ul> <p><b>Encoding an image format into a descriptor</b> </p> <p>The application
       
    72 creates and initialises an encoder (<xref href="GUID-737DA130-9A66-39E2-9E68-2E65F37E02C8.dita"><apiname>CImageEncoder</apiname></xref>) object
       
    73 to encode the bitmap to a descriptor. It uses the <xref href="GUID-737DA130-9A66-39E2-9E68-2E65F37E02C8.dita#GUID-737DA130-9A66-39E2-9E68-2E65F37E02C8/GUID-51ECB4D3-5A87-35E7-82EB-DF2BAEAB2CAC"><apiname>CImageEncoder::DataNewL()</apiname></xref> function
       
    74 to specify the descriptor to be used to store the encoded image. The application
       
    75 creates a bitmap (<xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref>) object to represent the source
       
    76 bitmap. Finally, the <xref href="GUID-737DA130-9A66-39E2-9E68-2E65F37E02C8.dita#GUID-737DA130-9A66-39E2-9E68-2E65F37E02C8/GUID-E1CADEBF-E502-3F7E-85D1-C6AA63E497FE"><apiname>CImageEncoder::Convert()</apiname></xref> function
       
    77 is called to start the encoding process. </p> <p>Apart from encoding a bitmap
       
    78 to a descriptor, the example application also demonstrates the following: </p> <ul>
       
    79 <li id="GUID-A16B7B77-5C4B-5BBF-816B-571F8D97AA35-GENID-1-7-1-18-1-1-4-1-7-1-2-4-12-1"><p>accessing the thumbnail
       
    80 and setting Exif metadata using <xref href="GUID-6E4966F9-69FD-323D-B61A-979024142478.dita"><apiname>CJPEGExifEncoder</apiname></xref> and <xref href="GUID-27F068D2-F5BE-3D0B-83F4-493A783CFB80.dita"><apiname>MExifMetadataWriter</apiname></xref> objects </p> </li>
       
    81 <li id="GUID-1DF1F3A5-0A2F-5457-ABCC-0EE2E465FDAE-GENID-1-7-1-18-1-1-4-1-7-1-2-4-12-2"><p>resizing an image and
       
    82 preserving image data using an object of the <xref href="GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4.dita"><apiname>CImageTransform</apiname></xref> class </p> </li>
       
    83 <li id="GUID-D1182BFF-B7E7-5FDF-BD67-CD1BE9AAE0C6-GENID-1-7-1-18-1-1-4-1-7-1-2-4-12-3"><p>adding a thumbnail and
       
    84 Exif metadata to a JPEG image using <xref href="GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4.dita"><apiname>CImageTransform</apiname></xref>, <xref href="GUID-6E4966F9-69FD-323D-B61A-979024142478.dita"><apiname>CJPEGExifEncoder</apiname></xref> and <xref href="GUID-27F068D2-F5BE-3D0B-83F4-493A783CFB80.dita"><apiname>MExifMetadataWriter</apiname></xref> objects. </p> </li>
       
    85 </ul> <p><b>Rotating a bitmap</b> </p> <p>The example application rotates
       
    86 a bitmap using an object of the <xref href="GUID-D0835677-6790-3038-8893-83E7186F47E7.dita"><apiname>CBitmapRotator</apiname></xref> class. </p> <p><b> Scaling
       
    87 a bitmap with and without a mask</b> </p> <p>The example application scales
       
    88 a bitmap using an object of the <xref href="GUID-2008D827-A84A-3170-A8BD-86002BA37979.dita"><apiname>CBitmapScaler</apiname></xref> class. </p> <p><b>Basic
       
    89 panorama stitching</b> </p> <p>The example application stitches the individual
       
    90 images into a panorama image, It uses an object of the <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama</apiname></xref> class
       
    91 for doing this. </p> <p><b>Panorama stitching based on viewfinder tracking</b> </p> <p>The
       
    92 example application stitches the images together to form panorama based on
       
    93 viewfinder tracking. It uses an object of the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> class
       
    94 for doing this. </p> <p><b>Basic image processing</b> </p> <p>The example
       
    95 application demonstrates how to scale an image and re-encode at a specific
       
    96 quality. It uses the <xref href="GUID-EAC2B181-7280-3616-8F33-5C32376A7CF2.dita"><apiname>CImgProcessorObserverStub</apiname></xref> and <xref href="GUID-244CB9D9-1501-35A2-836F-6F6A38DFC374.dita"><apiname>CImgProcessor</apiname></xref> classes
       
    97 for doing this. </p> <p><b>Image processing with some basic effects</b> </p> <p>The
       
    98 example demonstrates how to crop an image, apply effects and geometrical operations
       
    99 to it and re-encode the image to a specific size and quality. It uses a class <xref href="GUID-67233C77-F232-3DEE-BFF1-201FEE29583D.dita"><apiname>TGeometricalOperation</apiname></xref> in
       
   100 addition to the above mentioned classes. </p> <p><b>Generating Scalado SpeedView
       
   101 objects (Spmo)</b> </p> <p>The example generates the Spmo objects and adds
       
   102 them to an image file </p> <p><b>Removing effects from the images</b> </p> <p>The
       
   103 example application removes the effects applied tpo an image. It uses the
       
   104 class <xref href="GUID-A14BF41D-3F11-3CFB-9502-28E884DA632D.dita"><apiname>TEffectRotation</apiname></xref> in addition to the basic image processor
       
   105 classes. </p> <p><b>Adding effects to the images and generating a preview</b> </p> <p>Effects
       
   106 are added to the images and a preview of images is generated . It uses <xref href="GUID-343B0A46-FB35-3B00-A3EF-A4E2CD99997B.dita"><apiname>TEffect</apiname></xref> and <xref href="GUID-A7B72C01-BD38-3F0A-B79E-61994D700D2E.dita"><apiname>TPreview</apiname></xref> classes
       
   107 in addition to the above mentioned basic image processing classes. </p> <p><b>Adding
       
   108 effects to the images and generating an overlay</b> </p> <p>The example demonstrates
       
   109 overlay of a PNG image on a JPEG image. The overlay can be re-sized and repositioned
       
   110 through a preview before encoding it into the image. It uses <xref href="GUID-B2DFC582-0B16-3BED-831B-A448A04ACA44.dita"><apiname>TOverlay</apiname></xref> class
       
   111 in addition to the above mentioned classes. </p> <p><b>Adding a SpeedView
       
   112 object to the image</b> </p> <p>The example adds a SpeedView object to an
       
   113 image which has been processed. It uses <xref href="GUID-79F4A36C-E544-3FD7-BBD0-9A4E59008E5B.dita"><apiname>TCapsImageProcessorExtension</apiname></xref> class
       
   114 in additioned to the above mentioned classes </p> <p><b>Squeeze an image from
       
   115 a file to a file</b> </p> <p>The example squeezes an image from a file to
       
   116 file. It uses <xref href="GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4.dita"><apiname>CImageTransform</apiname></xref> and<xref href="GUID-11036D6A-55DB-353A-ABA6-C5A5788F4C9A.dita"><apiname>CSqueezeTransformExtension</apiname></xref> for
       
   117 doing this. </p> <p><b>Squeeze an image from buffer to buffer</b> </p> <p>The
       
   118 example squeezes an image from a buffer to a buffer. </p> <p><b>Auto squeeze
       
   119 an image from file to file</b> </p> <p>The example auto squeezes an image
       
   120 from file to file </p> <p><b>Rotate an image from file to file</b> </p> <p>The
       
   121 example rotates an image from file to file. </p> <p><b>Blend a jpg data in
       
   122 file to a file and squeeze it</b> </p> <p>The example generates an overlay
       
   123 of an image on another image and also squeezes the resultant image from a
       
   124 file to file. </p><p><b>Note:</b> The application uses an object of the <xref href="GUID-7A6A6EFD-F0DB-3747-9418-A423A613250A.dita"><apiname>TFrameInfo</apiname></xref> class
       
   125 to store image header information, such as, image size, dimension of the frame,
       
   126 colour depth and so on.</p> </section>
       
   127 <section id="GUID-1DFEF992-19E6-4231-BC3C-E996E8C0626C-GENID-1-7-1-18-1-1-4-1-7-1-2-5"><title>Download</title> <p>Click
       
   128 on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-f23a310d-8237-4060-bc6b-b6a1e9813add.zip" scope="external"> ICLExample.zip file</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-f23a310d-8237-4060-bc6b-b6a1e9813add.html" scope="peer">browse </xref> to view the example code. </p> </section>
       
   129 <section id="GUID-5859C6F4-EA8F-4CAB-982D-2827DFE958E0-GENID-1-7-1-18-1-1-4-1-7-1-2-6"><title>Class summary</title><p><xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder </apiname></xref>  <xref href="GUID-737DA130-9A66-39E2-9E68-2E65F37E02C8.dita"><apiname>CImageEncoder </apiname></xref><xref href="GUID-D0835677-6790-3038-8893-83E7186F47E7.dita"><apiname>CBitmapRotator </apiname></xref>  <xref href="GUID-2008D827-A84A-3170-A8BD-86002BA37979.dita"><apiname>CBitmapScaler </apiname></xref> <xref href="GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4.dita"><apiname>CImageTransform </apiname></xref>  <xref href="GUID-4CBAE460-BF54-3F8B-8E5D-BB7EA8633160.dita"><apiname>CGifScaler </apiname></xref> <xref href="GUID-7FA5A371-6171-3CA5-976A-20959D34DFC6.dita"><apiname>CJPEGImageFrameDecoder </apiname></xref>  <xref href="GUID-52969E30-A244-3A27-8182-FE105FEDABD7.dita"><apiname>CJPEGExifDecoder </apiname></xref> <xref href="GUID-6E4966F9-69FD-323D-B61A-979024142478.dita"><apiname>CJPEGExifEncoder </apiname></xref>  <xref href="GUID-4DBD1F07-42C5-3CD7-B809-A391F315E0D4.dita"><apiname>CImagePanorama </apiname></xref> <xref href="GUID-27BD164A-9283-3BE0-A0BF-A475539D86EA.dita"><apiname>CPanoramaTransform </apiname></xref>  <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker </apiname></xref> <xref href="GUID-244CB9D9-1501-35A2-836F-6F6A38DFC374.dita"><apiname>CImgProcessor </apiname></xref>  <xref href="GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4.dita"><apiname>CImageTransform </apiname></xref> <xref href="GUID-11036D6A-55DB-353A-ABA6-C5A5788F4C9A.dita"><apiname>CSqueezeTransformExtension </apiname></xref>  <xref href="GUID-593AD11D-3CE7-39E7-B5FE-EDEDABE8D936.dita"><apiname>COrientationTransformExtension </apiname></xref> <xref href="GUID-83EA2789-C3FE-383A-B81F-E9E362FE4283.dita"><apiname>COverlayTransformExtension </apiname></xref> <xref href="GUID-0ABAE4E1-FD74-30D5-9760-E2AB4910A6CE.dita"><apiname>CCapsSpmo </apiname></xref> <xref href="GUID-0090C69C-004A-33A8-8EEA-A0B4238A356A.dita"><apiname>CapsSpmoUtility </apiname></xref> <xref href="GUID-B6ACC0F4-BB58-3944-9ED2-42B043670573.dita"><apiname>MExifMetadata </apiname></xref> <xref href="GUID-27F068D2-F5BE-3D0B-83F4-493A783CFB80.dita"><apiname> MExifMetadataWriter </apiname></xref>  <xref href="GUID-8AA987C9-456B-3E7C-95C2-C5578EE977B9.dita"><apiname>TExifReaderUtility </apiname></xref><xref href="GUID-62EA502C-FBE8-39A8-AEC6-3104C15F18C9.dita"><apiname>TExifWriterUtility </apiname></xref> <xref href="GUID-343B0A46-FB35-3B00-A3EF-A4E2CD99997B.dita"><apiname>TEffect </apiname></xref> <xref href="GUID-67233C77-F232-3DEE-BFF1-201FEE29583D.dita"><apiname>TGeometricalOperation </apiname></xref> <xref href="GUID-A14BF41D-3F11-3CFB-9502-28E884DA632D.dita"><apiname> TEffectRotation </apiname></xref> <xref href="GUID-A7B72C01-BD38-3F0A-B79E-61994D700D2E.dita"><apiname>TPreview </apiname></xref>  <xref href="GUID-B2DFC582-0B16-3BED-831B-A448A04ACA44.dita"><apiname>TOverlay </apiname></xref> <xref href="GUID-79F4A36C-E544-3FD7-BBD0-9A4E59008E5B.dita"><apiname>TCapsImageProcessorExtension </apiname></xref>  </p></section>
       
   130 <section id="GUID-F1138207-7784-508F-9459-00D5AF1E2296-GENID-1-7-1-18-1-1-4-1-7-1-2-7"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian build process</xref> describes
       
   131 how to build an application. </p> <p>The <codeph>IclExample</codeph> builds
       
   132 an executable called <filepath>iclexample.exe</filepath> in the standard location
       
   133 (<filepath>\epoc32\release\winscw\</filepath> &lt;<i>build_variant</i> &gt; for
       
   134 CodeWarrior). After launching the executable, depending on the emulator you
       
   135 are using, you may need to task away from the application launcher/shell screen
       
   136 to view the console. </p> </section>
       
   137 </conbody></concept>