Symbian3/SDK/Source/GUID-3D9C4B45-EEA0-581C-A9E5-8B2535014930.dita
changeset 8 ae94777fff8f
parent 7 51a74ef9ed63
child 13 48780e181b38
equal deleted inserted replaced
7:51a74ef9ed63 8:ae94777fff8f
     9 -->
     9 -->
    10 <!DOCTYPE concept
    10 <!DOCTYPE concept
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
    12 <concept xml:lang="en" id="GUID-3D9C4B45-EEA0-581C-A9E5-8B2535014930"><title>Image Conversion Library Overview </title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document introduces you to the Image Conversion functionality. </p> <section id="GUID-5BECDECD-C1EC-5579-BE91-8F8004CD0DC4"><title>Purpose</title> <p>Image Conversion functionality supports many features like encoding, decoding, scaling, rotating, producing mirror image, flipping and cropping images. </p> <p><b>Image Conversion Library Details</b> </p> <p>To use Image Conversion, you must obtain necessary binaries in the form of DLL file to implement the image encoding and the image decoding functions. </p> <table id="GUID-0F5A5EF5-1839-5A5A-9DCC-3A58CB33A62F"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <filepath>imageconversion.dll</filepath>  </p> </entry> <entry><p> <filepath>imageconversion.lib</filepath>  </p> </entry> <entry><p>These files are used for implementing image conversion operation. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architectural Relationship</title> <p>Image Conversion is primarily used for Image Encoding and Image Decoding. The following diagram shows how the Image Encoding and the Image Decoding interacts with other components. </p> <fig id="GUID-D7706AA7-F1A9-5D87-B9D6-760FB7D7E906"><title>
    12 <concept xml:lang="en" id="GUID-3D9C4B45-EEA0-581C-A9E5-8B2535014930"><title>Image Conversion Library Overview </title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document introduces you to the Image Conversion functionality. </p> <section id="GUID-5BECDECD-C1EC-5579-BE91-8F8004CD0DC4"><title>Purpose</title> <p>Image Conversion functionality supports many features like encoding, decoding, scaling, rotating, producing mirror image, flipping and cropping images. </p> <p><b>Image Conversion Library Details</b> </p> <p>To use Image Conversion, you must obtain necessary binaries in the form of DLL file to implement the image encoding and the image decoding functions. </p> <table id="GUID-0F5A5EF5-1839-5A5A-9DCC-3A58CB33A62F"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <filepath>imageconversion.dll</filepath>  </p> </entry> <entry><p> <filepath>imageconversion.lib</filepath>  </p> </entry> <entry><p>These files are used for implementing image conversion operation. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architectural Relationship</title> <p>Image Conversion is primarily used for Image Encoding and Image Decoding. The following diagram shows how the Image Encoding and the Image Decoding interacts with other components. </p> <fig id="GUID-D7706AA7-F1A9-5D87-B9D6-760FB7D7E906"><title>
    13              Image Conversion system diagram 
    13              Image Conversion system diagram 
    14           </title> <image href="GUID-41A70DFD-BADF-5B8F-8085-488F34F81561_d0e306996_href.png" placement="inline"/></fig> </section> <section><title>Description</title> <p>The Image conversion provides several features to enable the conversion and basic manipulation of images. Conversions can be made from images stored in files or descriptors to <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> objects, or from <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> and <xref href="GUID-27B63129-ABD9-3B6C-882B-6F4501AF8E15.dita"><apiname>CFrameImageData</apiname></xref> objects to files or descriptors. Features of the image conversion function include: </p> <ul><li id="GUID-EA49D943-5B10-56C0-9AE3-5F73283CEB8E"><p>Standard decoders that can decode single or multiframe images, images with bitmasks, images with in-image or in-frame comments. </p> </li> <li id="GUID-80C4DB9F-6273-5656-8A6A-221528128D9C"><p>Support for progressive decoding. </p> </li> <li id="GUID-033F1133-1DFA-5460-9FE8-E95DB53CF38C"><p>Functions to decode images stored in files or descriptors. </p> </li> <li id="GUID-D99568AB-50DB-5B49-892E-A83FD4F4FABC"><p>Standard encoder that can encode single frame images and images with in image comments. </p> </li> <li id="GUID-85F702CC-60C0-5913-890C-08F8F6CAEFF2"><p>Functions to manipulate image properties such as scale, rotation, dithering and progressive decoding. </p> </li> <li id="GUID-94FF0822-C220-5D0C-AF65-16D2A09E7072"><p>Advanced thread control for encoder and decoders. </p> </li> </ul> </section> <section><title>Key Image Conversion Classes</title> <p>The key classes are </p> <dl><dlentry><dt>Image Encoding</dt> <dd><p>Image encoding is the process of taking a bitmap stored in a <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref>, converting it to a specified format and writing the output to a file or descriptor. Typical sources of bitmap data are cameras and paint applications. The <xref href="GUID-737DA130-9A66-39E2-9E68-2E65F37E02C8.dita"><apiname>CImageEncoder</apiname></xref> object is created specifying the source image and encoder plugin as parameters. 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 then encodes the image using the methods provided by the plugin. The results of the conversion are then saved to a file or descriptor. </p> </dd> </dlentry> <dlentry><dt>Image Decoding</dt> <dd><p>Image decoding is the process of taking an image stored in a file or descriptor, converting it from a specified format and writing the output to a <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref>. The <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> object is created specifying the source image and decoder plugin as parameters. 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 then decodes the image using the methods provided by the plugin. The results of the conversion are then saved to a <codeph>CFbsBitmap</codeph>. </p> </dd> </dlentry> <dlentry><dt>Image Processor</dt> <dd><p>Image Processor is an interface to process the decoded image using the <xref href="GUID-E57B96D4-87E2-3BD7-ADA1-B9448A6DFFF6.dita"><apiname>CImageProcessor</apiname></xref> class. </p> </dd> </dlentry> </dl> </section> <section><title>Using Image Conversion</title> <p>The Image Conversion functionality is used for the following: </p> <ul><li id="GUID-1A5A0DC1-EA29-535C-A5BB-5D8EF0F24A5C"><p>Rotate, crop, mirror and flip an image frame during decode operation. </p> </li> <li id="GUID-0F53E15D-1D95-587E-8B4B-2B7E6CBEF2BF"><p>Scaling with reduction factor of an image during decode operation. </p> </li> <li id="GUID-55A5A2CD-ED87-56E7-8A36-8F783454184C"><p>Decode an image by requesting pixel data block by block. </p> </li> <li id="GUID-84E17F61-98DF-5782-8DFF-EE946F61E8DF"><p>Decode an image from a descriptor or a file. </p> </li> <li id="GUID-67885D9D-BA8C-53A4-B5E5-6B57B0ED00A8"><p>Decode an image using a mask for the image with transparency. </p> </li> <li id="GUID-10DF77DC-D6B5-54E7-A8B1-728DA0970558"><p>Decode an image using separate thread. </p> </li> <li id="GUID-A4FA39C1-2965-582D-B9EC-E2FB57646274"><p>Decode a JPEG image thumbnail. </p> </li> <li id="GUID-7D98BCC3-18EF-5EF3-8B1A-99AE0DB2F809"><p>Decode a GIF multi-frame image. </p> </li> <li id="GUID-3710C58E-45F1-5FFC-8DAA-28B5FD4A2A76"><p>Decode an image that supports YUV format into an image frame. </p> </li> <li id="GUID-F25602E2-9EA2-5C08-A445-11911DC1C47F"><p>Turning OFF and ON dithering during decode operation of the image. </p> </li> <li id="GUID-43824E57-1608-5798-BE2B-A28EE0C1670E"><p>Encode a bitmap or an image frame into a descriptor or a file. </p> </li> <li id="GUID-F56A325A-3272-5E0A-99A1-60D29E5EBE50"><p>Encode an image frame by passing pixel data block by block. </p> </li> <li id="GUID-8C57D275-981D-5D70-8D60-3F7FD5DCE2F7"><p>Rotate, mirror and flip an image during encode functionality. </p> </li> <li id="GUID-6D5ACBD5-2471-50BF-AAB5-B71D98F9DF39"><p>Rotate a bitmap image. </p> </li> <li id="GUID-2CE27CA7-4D48-5E04-B307-B5C934918AAE"><p>Scaling a bitmap image with or without a mask. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-88091838-03FC-550F-9A3D-DA70907EF955.dita"><linktext>Imaging Frameworks Overview</linktext> </link> <link href="GUID-3D9C4B45-EEA0-581C-A9E5-8B2535014930.dita"><linktext>Image Conversion Overview</linktext> </link> <link href="GUID-6DC34798-86CE-537D-B3B8-9A94FF77B283.dita"><linktext>Image Encoding Tutorial</linktext> </link> <link href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita"><linktext>Image Decoding Tutorial</linktext> </link> <link href="GUID-A825B62E-B5F6-5FDD-B267-E47103D57FD8.dita"><linktext>Guide to Symbian supplied Codecs</linktext> </link> </related-links></concept>
    14           </title> <image href="GUID-41A70DFD-BADF-5B8F-8085-488F34F81561_d0e300969_href.png" placement="inline"/></fig> </section> <section><title>Description</title> <p>The Image conversion provides several features to enable the conversion and basic manipulation of images. Conversions can be made from images stored in files or descriptors to <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> objects, or from <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref> and <xref href="GUID-27B63129-ABD9-3B6C-882B-6F4501AF8E15.dita"><apiname>CFrameImageData</apiname></xref> objects to files or descriptors. Features of the image conversion function include: </p> <ul><li id="GUID-EA49D943-5B10-56C0-9AE3-5F73283CEB8E"><p>Standard decoders that can decode single or multiframe images, images with bitmasks, images with in-image or in-frame comments. </p> </li> <li id="GUID-80C4DB9F-6273-5656-8A6A-221528128D9C"><p>Support for progressive decoding. </p> </li> <li id="GUID-033F1133-1DFA-5460-9FE8-E95DB53CF38C"><p>Functions to decode images stored in files or descriptors. </p> </li> <li id="GUID-D99568AB-50DB-5B49-892E-A83FD4F4FABC"><p>Standard encoder that can encode single frame images and images with in image comments. </p> </li> <li id="GUID-85F702CC-60C0-5913-890C-08F8F6CAEFF2"><p>Functions to manipulate image properties such as scale, rotation, dithering and progressive decoding. </p> </li> <li id="GUID-94FF0822-C220-5D0C-AF65-16D2A09E7072"><p>Advanced thread control for encoder and decoders. </p> </li> </ul> </section> <section><title>Key Image Conversion Classes</title> <p>The key classes are </p> <dl><dlentry><dt>Image Encoding</dt> <dd><p>Image encoding is the process of taking a bitmap stored in a <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref>, converting it to a specified format and writing the output to a file or descriptor. Typical sources of bitmap data are cameras and paint applications. The <xref href="GUID-737DA130-9A66-39E2-9E68-2E65F37E02C8.dita"><apiname>CImageEncoder</apiname></xref> object is created specifying the source image and encoder plugin as parameters. 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 then encodes the image using the methods provided by the plugin. The results of the conversion are then saved to a file or descriptor. </p> </dd> </dlentry> <dlentry><dt>Image Decoding</dt> <dd><p>Image decoding is the process of taking an image stored in a file or descriptor, converting it from a specified format and writing the output to a <xref href="GUID-683A1D42-2764-3EB7-BD19-9E12559199AB.dita"><apiname>CFbsBitmap</apiname></xref>. The <xref href="GUID-8F2953B2-E64E-3D8B-B30B-B35B373368D4.dita"><apiname>CImageDecoder</apiname></xref> object is created specifying the source image and decoder plugin as parameters. 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 then decodes the image using the methods provided by the plugin. The results of the conversion are then saved to a <codeph>CFbsBitmap</codeph>. </p> </dd> </dlentry> <dlentry><dt>Image Processor</dt> <dd><p>Image Processor is an interface to process the decoded image using the <xref href="GUID-E57B96D4-87E2-3BD7-ADA1-B9448A6DFFF6.dita"><apiname>CImageProcessor</apiname></xref> class. </p> </dd> </dlentry> </dl> </section> <section><title>Using Image Conversion</title> <p>The Image Conversion functionality is used for the following: </p> <ul><li id="GUID-1A5A0DC1-EA29-535C-A5BB-5D8EF0F24A5C"><p>Rotate, crop, mirror and flip an image frame during decode operation. </p> </li> <li id="GUID-0F53E15D-1D95-587E-8B4B-2B7E6CBEF2BF"><p>Scaling with reduction factor of an image during decode operation. </p> </li> <li id="GUID-55A5A2CD-ED87-56E7-8A36-8F783454184C"><p>Decode an image by requesting pixel data block by block. </p> </li> <li id="GUID-84E17F61-98DF-5782-8DFF-EE946F61E8DF"><p>Decode an image from a descriptor or a file. </p> </li> <li id="GUID-67885D9D-BA8C-53A4-B5E5-6B57B0ED00A8"><p>Decode an image using a mask for the image with transparency. </p> </li> <li id="GUID-10DF77DC-D6B5-54E7-A8B1-728DA0970558"><p>Decode an image using separate thread. </p> </li> <li id="GUID-A4FA39C1-2965-582D-B9EC-E2FB57646274"><p>Decode a JPEG image thumbnail. </p> </li> <li id="GUID-7D98BCC3-18EF-5EF3-8B1A-99AE0DB2F809"><p>Decode a GIF multi-frame image. </p> </li> <li id="GUID-3710C58E-45F1-5FFC-8DAA-28B5FD4A2A76"><p>Decode an image that supports YUV format into an image frame. </p> </li> <li id="GUID-F25602E2-9EA2-5C08-A445-11911DC1C47F"><p>Turning OFF and ON dithering during decode operation of the image. </p> </li> <li id="GUID-43824E57-1608-5798-BE2B-A28EE0C1670E"><p>Encode a bitmap or an image frame into a descriptor or a file. </p> </li> <li id="GUID-F56A325A-3272-5E0A-99A1-60D29E5EBE50"><p>Encode an image frame by passing pixel data block by block. </p> </li> <li id="GUID-8C57D275-981D-5D70-8D60-3F7FD5DCE2F7"><p>Rotate, mirror and flip an image during encode functionality. </p> </li> <li id="GUID-6D5ACBD5-2471-50BF-AAB5-B71D98F9DF39"><p>Rotate a bitmap image. </p> </li> <li id="GUID-2CE27CA7-4D48-5E04-B307-B5C934918AAE"><p>Scaling a bitmap image with or without a mask. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-88091838-03FC-550F-9A3D-DA70907EF955.dita"><linktext>Imaging Frameworks Overview</linktext> </link> <link href="GUID-3D9C4B45-EEA0-581C-A9E5-8B2535014930.dita"><linktext>Image Conversion Overview</linktext> </link> <link href="GUID-6DC34798-86CE-537D-B3B8-9A94FF77B283.dita"><linktext>Image Encoding Tutorial</linktext> </link> <link href="GUID-B10B048F-37FF-53E7-92B9-83F8C197566A.dita"><linktext>Image Decoding Tutorial</linktext> </link> <link href="GUID-A825B62E-B5F6-5FDD-B267-E47103D57FD8.dita"><linktext>Guide to Symbian supplied Codecs</linktext> </link> </related-links></concept>