Symbian3/PDK/Source/GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-7-1-18-1-1-4-1-7-1.dita
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/PDK/Source/GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-7-1-18-1-1-4-1-7-1.dita Fri Jan 22 18:26:19 2010 +0000
@@ -0,0 +1,137 @@
+<?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 id="GUID-63CBD66E-9E92-51EB-8709-9DE6F2808DC8-GENID-1-7-1-18-1-1-4-1-7-1" xml:lang="en"><title>ICLExample:
+Decoding/Encoding an image using the Image Conversion Library</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This example application demonstrates how to convert still images, stored
+in files or descriptors, to and from bitmap objects using the Image Conversion
+Library (ICL) API. It is located in the folder <filepath>examples\Multimedia\ICL\ICLExample</filepath>. </p>
+<p>The overview contains the following sections: </p>
+<ul>
+<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>
+<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>
+<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>
+<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>
+</ul>
+<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
+example application demonstrates how to encode, decode, rotate and scale an
+image using the plug-ins provided by ICL. It covers the following scenarios: </p> <ul>
+<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
+from a descriptor or a file </p> </li>
+<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
+into a descriptor </p> </li>
+<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>
+<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
+or without a mask. </p> </li>
+<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
+to form a panorama </p> </li>
+<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
+techniques </p> </li>
+<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
+techniques </p> </li>
+<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
+SpeedView objects(Spmo) inside an image </p> </li>
+</ul> <p> <b>Note:</b> An ECom session is started internally by the ICL framework,
+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
+an image format from a descriptor or a file</b> </p> <p>The application creates
+and initialises a decoder (<xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref>) object to decode
+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.
+After the source is specified, the application creates a bitmap (<xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref>)
+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
+is called to start decoding process. </p> <p>Apart from decoding an image
+from a file or a descriptor to a bitmap, the example application also demonstrates
+the following: </p> <ul>
+<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
+to a YUV format image frame using a <xref href="GUID-7FA5A371-6171-3CA5-976A-20959D34DFC6.dita"><apiname>CJPEGImageFrameDecoder</apiname></xref> object.
+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,
+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
+is called to find out whether the image supports YUV format or not. </p> </li>
+<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
+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>
+<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
+thumbnail to a bitmap </p> </li>
+<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
+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>
+<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
+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>
+<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
+GIF image to bitmap </p> </li>
+<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
+to a bitmap with a mask </p> </li>
+<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
+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>
+</ul> <p><b>Encoding an image format into a descriptor</b> </p> <p>The application
+creates and initialises an encoder (<xref href="GUID-737DA130-9A66-39E2-9E68-2E65F37E02C8.dita"><apiname>CImageEncoder</apiname></xref>) object
+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
+to specify the descriptor to be used to store the encoded image. The application
+creates a bitmap (<xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref>) object to represent the source
+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
+is called to start the encoding process. </p> <p>Apart from encoding a bitmap
+to a descriptor, the example application also demonstrates the following: </p> <ul>
+<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
+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>
+<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
+preserving image data using an object of the <xref href="GUID-37B0C02C-F518-3ADD-8828-90FD6B3E9DE4.dita"><apiname>CImageTransform</apiname></xref> class </p> </li>
+<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
+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>
+</ul> <p><b>Rotating a bitmap</b> </p> <p>The example application rotates
+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
+a bitmap with and without a mask</b> </p> <p>The example application scales
+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
+panorama stitching</b> </p> <p>The example application stitches the individual
+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
+for doing this. </p> <p><b>Panorama stitching based on viewfinder tracking</b> </p> <p>The
+example application stitches the images together to form panorama based on
+viewfinder tracking. It uses an object of the <xref href="GUID-0D12EA24-3BF5-3BEA-B0EA-CEB89D49D352.dita"><apiname>CVFTracker</apiname></xref> class
+for doing this. </p> <p><b>Basic image processing</b> </p> <p>The example
+application demonstrates how to scale an image and re-encode at a specific
+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
+for doing this. </p> <p><b>Image processing with some basic effects</b> </p> <p>The
+example demonstrates how to crop an image, apply effects and geometrical operations
+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
+addition to the above mentioned classes. </p> <p><b>Generating Scalado SpeedView
+objects (Spmo)</b> </p> <p>The example generates the Spmo objects and adds
+them to an image file </p> <p><b>Removing effects from the images</b> </p> <p>The
+example application removes the effects applied tpo an image. It uses the
+class <xref href="GUID-A14BF41D-3F11-3CFB-9502-28E884DA632D.dita"><apiname>TEffectRotation</apiname></xref> in addition to the basic image processor
+classes. </p> <p><b>Adding effects to the images and generating a preview</b> </p> <p>Effects
+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
+in addition to the above mentioned basic image processing classes. </p> <p><b>Adding
+effects to the images and generating an overlay</b> </p> <p>The example demonstrates
+overlay of a PNG image on a JPEG image. The overlay can be re-sized and repositioned
+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
+in addition to the above mentioned classes. </p> <p><b>Adding a SpeedView
+object to the image</b> </p> <p>The example adds a SpeedView object to an
+image which has been processed. It uses <xref href="GUID-79F4A36C-E544-3FD7-BBD0-9A4E59008E5B.dita"><apiname>TCapsImageProcessorExtension</apiname></xref> class
+in additioned to the above mentioned classes </p> <p><b>Squeeze an image from
+a file to a file</b> </p> <p>The example squeezes an image from a file to
+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
+doing this. </p> <p><b>Squeeze an image from buffer to buffer</b> </p> <p>The
+example squeezes an image from a buffer to a buffer. </p> <p><b>Auto squeeze
+an image from file to file</b> </p> <p>The example auto squeezes an image
+from file to file </p> <p><b>Rotate an image from file to file</b> </p> <p>The
+example rotates an image from file to file. </p> <p><b>Blend a jpg data in
+file to a file and squeeze it</b> </p> <p>The example generates an overlay
+of an image on another image and also squeezes the resultant image from a
+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
+to store image header information, such as, image size, dimension of the frame,
+colour depth and so on.</p> </section>
+<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
+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>
+<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>
+<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
+how to build an application. </p> <p>The <codeph>IclExample</codeph> builds
+an executable called <filepath>iclexample.exe</filepath> in the standard location
+(<filepath>\epoc32\release\winscw\</filepath> <<i>build_variant</i> > for
+CodeWarrior). After launching the executable, depending on the emulator you
+are using, you may need to task away from the application launcher/shell screen
+to view the console. </p> </section>
+</conbody></concept>
\ No newline at end of file