home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format 117 / af117sub.adf / jpeglibrary.lzx / jpeglibrary / autodocs / jpeg.autodoc
Text File  |  1998-09-22  |  20KB  |  613 lines

  1. TABLE OF CONTENTS
  2.  
  3. jpeg.library/--background--
  4. jpeg.library/--history--
  5. jpeg.library/--information--
  6. jpeg.library/AllocJPEGCompressA
  7. jpeg.library/AllocJPEGDecompressA
  8. jpeg.library/AllocRGBFromJPEGA
  9. jpeg.library/CompressJPEGA
  10. jpeg.library/DecompressJPEGA
  11. jpeg.library/FreeJPEGCompress
  12. jpeg.library/FreeJPEGDecompress
  13. jpeg.library/FreeJPEGRGBBuffer
  14. jpeg.library/GetJPEGInfoA
  15. jpeg.library/--background--                       jpeg.library/--background--
  16.  
  17.    PURPOSE
  18.  To allow de/compression of images into/from the jpeg image format.
  19.  
  20.    COPYRIGHT
  21.  The copyright in this library is owned by Paul Huxham.
  22.  This software is based in part on the work of the Independent JPEG Group.
  23.  The jpeg de/compression routines are copyright by the Independent
  24.  JPEG Group, written by Thomas G. Lane.
  25.  
  26.    DISCLAIMER
  27.  jpeg.library and its associated files are supposed to enable jpeg images
  28.  to be de/compressed. Even though every effort has been made to make
  29.  jpeg.library as stable and functional as possible, I cannot rule out the
  30.  possibility that jpeg.library may have bugs that have side effects
  31.  (possibly harmful) on your system.
  32.  
  33.  I hereby reject any liability or responsibility for these or any other
  34.  consequences from the use of jpeg.library whatsoever. This includes, but
  35.  is not limited to, damage to your equipment, to your data, personal
  36.  injuries, financial loss or any other kinds of side effects.
  37.  
  38.  jpeg.library is provided as-is. This means I do not guarantee that
  39.  jpeg.library is fit for any specific purpose and I do not guarantee any
  40.  bug fixes, updates or help during error recovery.
  41.  
  42.    DISTRIBUTION
  43.  jpeg.library should be distributed at no charge to the end user. It may
  44.  be included on Aminet CDs.
  45.  
  46.  The author retains all rights to the enclosed software. Payment is not
  47.  required for the use of jpeg.library.
  48.  
  49.    CONTENTS
  50.  jpeg.library - The jpeg de/compression library.
  51.  jpeg.fd - The function description file.
  52.  jpeg_protos.h - The function prototypes.
  53.  jpeg_pragmas.h - The function pragmas.
  54.  jpeg.h - proof.library definitions.
  55.  jpeg.lib - Stubs link library.
  56.  jpeg.autodoc - jpeg.library documentation.
  57.  
  58.    REQUIREMENTS
  59.  A minimum of Kickstart 2.0 and 68020 CPU is required to use jpeg.library.
  60.  
  61.    COMPLIER
  62.  jpeg.library was written and compiled using CED V3.5 and SAS/C 6.55 on
  63.  an Amiga 4000/060. CyberGuard was used to detect/correct programming
  64.  errors.
  65.  
  66.    BUGS
  67.  Should you find any bugs, please report them so that they can be fixed.
  68.  Likewise any suggestions for improvment of the library should be
  69.  forwarded so that they can be addressed.
  70.  
  71.    THANKYOUS
  72.  Many thanks to
  73.    Dinh Thi Kim Tuyen
  74.      -Who makes the sky blue and the world turn. I love you, forevermore.
  75.  
  76.    Steve Quartly
  77.      - For saying its possible and then helping me do it.
  78.  
  79.    AUTHORS
  80.   You can contact the author via:
  81.     email: paulh@mafeking.scouts.org.au
  82.   or
  83.     P.O. Box 875
  84.     Morley,
  85.     Perth,
  86.     Western Australia 6943
  87.  
  88. jpeg.library/--history--                             jpeg.library/--history--
  89.  
  90.  V4.0
  91.   > Corrected some small typos in the documentation.
  92.  
  93.   > Added DCTMethods for de/compression. These can offset speed versus
  94.     quality. Check jpeg.h for the methods and tag to use.
  95.  
  96.  V3.2
  97.   > Fixed a bug where when decompressing using a render hook, the userdata
  98.     was not passed to the hook.
  99.  
  100.   > Added a new pragmas file which contains pragmas for different
  101.     compilers, thanks to Stephan Rupprecht for his help.
  102.  
  103.  V3.1
  104.   > Fixed a bug where when decompressing to memory using memory pools
  105.     resulted in a 4k memory loss until the freeing of the memory pool.
  106.  
  107.  V3.0
  108.   > Fixed a bug where aborting de/compression returned DE/COMPFAILURE not
  109.     DE/COMPABORTED.
  110.  
  111.   > Some documentation errors and omissions are now fixed.
  112.  
  113.   > Added a render callback hook for use during image decompression.
  114.  
  115.   > Added memory pool support for image compression into a memory
  116.     destination stream.
  117.  
  118.  V2.1
  119.   > Fixed a bug when there is insufficient memory and the library
  120.     attempted to use temporary files (previously would fail to load the
  121.     image). Now it will ask for a JPEGTMP: assignment to store the
  122.     temporary files into.
  123.  
  124.   > Previously the maximum memory to use was fixed at 1 meg. Now it is
  125.     10% less than the total amount of free memory. If there is still
  126.     insufficient memory, temporary files will be used.
  127.  
  128.   > Implemented progress indicator callback hooks for compression and
  129.     decompression.
  130.  
  131.   > Added some additional error codes such as not a jpeg file etc (see
  132.     jpeg.h)
  133.  
  134.   > Updated the example code to show new features of the library. Fixed
  135.     some documentation problems in the example code.
  136.  
  137.  V1.0
  138.   > Initial release.
  139.  
  140. jpeg.library/--information--                     jpeg.library/--information--
  141.  
  142.  Although the documentation is not extensive, the examples are fairly well
  143.  layed out and easy to follow. They all use different methods of
  144.  accessing jpeg.library. You can choose the one that suits your
  145.  application best.
  146.  
  147.  It is EXTREMELY IMPORTANT to check the colour space of the jpeg image you
  148.  have decoded (or are about to decode). For example, in a JPCS_GRAYSCALE
  149.  only one third the amount of information is returned compared to an rgb
  150.  triplet buffer as the grayscale image data is normally one byte per
  151.  pixel. For JPCS_UNKNOWN, check the number of bytes per pixel to establish
  152.  if the data is grayscale or not. For JPCS_RGB, the image data will be
  153.  returned as an rgb triplet array.
  154.  
  155. jpeg.library/AllocJPEGCompressA               jpeg.library/AllocJPEGCompressA
  156.  
  157.    NAME
  158.   AllocJPEGCompressA -- Allocate a jpeg compression handle (V1)
  159.   AllocJPEGCompress -- Varargs stub (V1)
  160.  
  161.    SYNOPSIS
  162.  err = AllocJPEGCompressA( jph, taglist )
  163.                              a0   a1
  164.  
  165.  err = AllocJPEGCompressA( struct JPEGComHandle **jph,
  166.                              struct TagItem *taglist )
  167.  
  168.  err = AllocJPEGCompress( jph, tag1, ... )
  169.  
  170.  err = AllocJPEGCompress( struct JPEGComHandle **jph, ULONG tag1, ... )
  171.  
  172.    FUNCTION
  173.  Allocates a new jpeg handle.
  174.  
  175.   Available tags:
  176.    JPG_DestMemStream     - A pointer to a UBYTE pointer to take the data
  177.                            generated by the compressor (if specified, must
  178.                            also specify the JPG_DestMemStreamSize tag).
  179.                            See NOTE below about this allocated memory.
  180.    JPG_DestMemStreamSize - A pointer to a ULONG to take the size of the
  181.                            compressed data (if specified, must also
  182.                            specify the JPG_DestMemStream).
  183.    JPG_DestFile          - A BPTR to an already open AmigaDOS file.
  184.  
  185.   New tags requiring V3.0
  186.    JPG_MemoryPool        - A pointer to a exec V39 memory pool to store
  187.                            the compressed jpeg data into. (NOT freed on
  188.                            exit.)
  189.  
  190.    INPUTS
  191.  jph - pointer to a struct JPEGComHandle pointer.
  192.  taglist - pointer to a tag list specifying the destination for the
  193.            compressed data and data size.
  194.  
  195.    RESULT
  196.  err - if non NULL contains an error code. (For a complete list of error
  197.        codes, see jpeg.h)
  198.  
  199.    WARNING
  200.  
  201.    BUGS
  202.  
  203.    NOTES
  204.  You are responsible for freeing the memory allocated to you, by calling
  205.  FreeVec() on the pointer supplied to AllocJPEGCompress() (if it isnt a
  206.  NULL value).
  207.  
  208.  BUT if you are using the new JPG_MemoryPool tag in object allocation,
  209.  call an appropriate pool or puddle free routine.
  210.  
  211.    SEE ALSO
  212.  FreeJPEGCompressA(), CompressJPEGA()
  213.  
  214. jpeg.library/AllocJPEGDecompressA           jpeg.library/AllocJPEGDecompressA
  215.  
  216.    NAME
  217.   AllocJPEGDecompressA -- Allocate a jpeg decompression handle (V1)
  218.   AllocJPEGDecompress -- Varargs stub (V1)
  219.  
  220.    SYNOPSIS
  221.  err = AllocJPEGDecompressA( jph, taglist )
  222.                              a0   a1
  223.  
  224.  err = AllocJPEGDecompressA( struct JPEGDecHandle **jph,
  225.                              struct TagItem *taglist )
  226.  
  227.  err = AllocJPEGDecompress( jph, tag1, ... )
  228.  
  229.  err = AllocJPEGDecompress( struct JPEGDecHandle **jph, ULONG tag1, ... )
  230.  
  231.    FUNCTION
  232.  Allocates a new jpeg handle.
  233.  
  234.   Available tags:
  235.    JPG_SrcMemStream     - The source image is a segment of memory starting
  236.                           at this address.
  237.    JPG_SrcMemStreamSize - The length of the memory based segment, in bytes.
  238.    JPG_SrcFile          - A BPTR to an already open AmigaDOS file.
  239.  
  240.    INPUTS
  241.  jph - pointer to a struct JPEGDecHandle pointer.
  242.  taglist - pointer to a tag list specifying the jpeg stream source and
  243.            size.
  244.  
  245.    RESULT
  246.  err - if non NULL contains an error code. (For a complete list of error
  247.        codes, see jpeg.h)
  248.  
  249.    WARNING
  250.  
  251.    BUGS
  252.  
  253.    SEE ALSO
  254.  FreeJPEGDecompressA(), DecompressJPEGA()
  255.  
  256. jpeg.library/AllocRGBFromJPEGA                 jpeg.library/AllocRGBFromJPEGA
  257.  
  258.    NAME
  259.   AllocRGBFromJPEGA -- Allocate an RGB triplet buffer (V1)
  260.   AllocRGBFromJPEG -- Varargs stub (V1)
  261.  
  262.    SYNOPSIS
  263.  buffer = AllocRGBFromJPEGA( jph, taglist )
  264.                              a0   a1
  265.  
  266.  void *AllocRGBFromJPEGA( struct JPEGDecHandle *jph,
  267.                           struct TagItem *taglist )
  268.  
  269.  buffer = AllocRGBFromJPEG( jph, tag1, ... )
  270.  
  271.  void *AllocRGBFromJPEG( struct JPEGDecHandle *jph, ULONG tag1, ... )
  272.  
  273.    FUNCTION
  274.  Allocates enough memory to hold the decompressed version of the jpeg in
  275.  memory as a stream of RGB triplets.
  276.  
  277.    INPUTS
  278.  taglist  - pointer to an optional tag list specifying how to modify the
  279.             image data.
  280.  
  281.   Modifiers (used, but not saved in the jpeg handle):
  282.    JPG_ScaleNum      - Return values as though scaled with this value.
  283.    JPG_ScaleDenom    - Return values as though scaled with this value.
  284.  
  285.    RESULT
  286.  buffer - is NULL for any error, or a pointer to the memory allocated.
  287.  
  288.    WARNING
  289.  
  290.    BUGS
  291.  Technically, this function does not allocate an RGB sized buffer, but
  292.  rather allocates enough memory to hold the decoded image. (eg if the data
  293.  is of JPCS_GRAYSCALE, only one third the amount of memory is allocated as
  294.  compared to a JPCS_RGB image.)
  295.  
  296.    NOTES
  297.  If you obtained your image sizes from GetJPEGInfo() and used scale tags,
  298.  you SHOULD also pass those same tag values to this function to allocate
  299.  the buffer, otherwise the buffer allocated will be the original size of
  300.  the image.
  301.  
  302.    SEE ALSO
  303.  FreeJPEGRGBBuffer()
  304.  
  305. jpeg.library/CompressJPEGA                         jpeg.library/CompressJPEGA
  306.  
  307.    NAME
  308.   CompressJPEGA -- Compress a jpeg stream (V1)
  309.   CompressJPEG -- Varargs stub (V1)
  310.  
  311.    SYNOPSIS
  312.  err = CompressJPEGA( jph, taglist )
  313.                         a0   a1
  314.  
  315.  err = CompressJPEGA( struct JPEGComHandle *jph,
  316.                         struct TagItem *taglist )
  317.  
  318.  err = CompressJPEG( jph, tag1, ... )
  319.  
  320.  err = CompressJPEG( struct JPEGComHandle **jph, ULONG tag1, ... )
  321.  
  322.    FUNCTION
  323.  Compresses a jpeg stream into the location specified by
  324.  AllocJPGCompress() using the supplied tags.
  325.  
  326.   Available tags:
  327.    JPG_SrcRGBBuffer      - An RGB triplet buffer containing the source
  328.                            image.
  329.    JPG_CompressHook      - Calls a user specified function (see jpeg.h)
  330.    JPG_CompressUserData  - User data passed to the hook function.
  331.    JPG_Width             - Width of the image (REQUIRED).
  332.    JPG_Height            - Height of the image (REQUIRED).
  333.    JPG_Quality           - Jpeg save quality (1-100), defaults to 85.
  334.    JPG_BytesPerPixel     - The number of bytes per image pixel, defaults
  335.                            to 3.
  336.    JPG_ColourSpace       - The type of image data stored in the buffer,
  337.                            defaults to JPCS_RGB (see jpeg.h for others).
  338.    JPG_Smoothing         - Apply image smoothing while saving (0-100),
  339.                            defaults to none (0).
  340.  
  341.   New tags requiring V2.1
  342.    JPG_ProgressHook      - Calls a user specified function (see jpeg.h).
  343.                             DO NOT pass a hook structure pointer here. Put
  344.                             a pointer to your function. (See examples).
  345.                             Returning a non NULL value from the hook will
  346.                             abort a load in progress.
  347.    JPG_ProgressUserData  - User data passed to the hook function (void *).
  348.  
  349.   New tags requiring V4.0
  350.    JPG_DCTMethod         - The DCT processing method to use for encoding,
  351.                            defaults to DCT_ISLOW (see jpeg.h for others).
  352.  
  353.    INPUTS
  354.  jph - pointer to a struct JPEGComHandle.
  355.  taglist - pointer to a tag list.
  356.  
  357.    RESULT
  358.  err - if non NULL contains an error code. (For a complete list of error
  359.        codes, see jpeg.h)
  360.  
  361.    WARNING
  362.  
  363.    BUGS
  364.  
  365.    NOTES
  366.  You are responsible for freeing the memory allocated to you, by calling
  367.  FreeVec() on the pointer supplied to AllocJPEGCompress().
  368.  
  369.  BUT if you are using the new JPG_MemoryPool tag in object allocation,
  370.  call an appropriate pool or puddle free routine.
  371.  
  372.  e.g.
  373.  
  374.   UBYTE *cstream;
  375.   ULONG cstreamsize;
  376.  
  377.   err = AllocJPEGCompress( &jpc, JPG_DestMemStream, &cstream,
  378.           JPG_DestMemStreamSize, &cstreamsize, TAG_DONE );
  379.  
  380.   err = CompressJPEG( jpc, JPG_SrcRGBBuffer, buffer,
  381.           JPG_Width, x, JPG_Height, y, TAG_DONE );
  382.  
  383.   FreeJPEGCompress( jpc );
  384.  
  385.   /* Use the buffer here */
  386.  
  387.   if ( cstream != NULL ) FreeVec( cstream );
  388.  
  389.    SEE ALSO
  390.  AllocJPEGCompressA(), FreeJPEGCompressA()
  391.  
  392. jpeg.library/DecompressJPEGA                     jpeg.library/DecompressJPEGA
  393.  
  394.    NAME
  395.   DecompressJPEGA -- Decompress a jpeg stream (V1)
  396.   DecompressJPEG -- Varargs stub (V1)
  397.  
  398.    SYNOPSIS
  399.  err = DecompressJPEGA( jph, taglist )
  400.                         a0   a1
  401.  
  402.  err = DecompressJPEGA( struct JPEGDecHandle *jph,
  403.                         struct TagItem *taglist )
  404.  
  405.  err = DecompressJPEG( jph, tag1, ... )
  406.  
  407.  err = DecompressJPEG( struct JPEGDecHandle **jph, ULONG tag1, ... )
  408.  
  409.    FUNCTION
  410.  Decompresses a jpeg stream as specified by AllocJPGDecompress() and
  411.  supplied tags.
  412.  
  413.   Available tags:
  414.    JPG_DestRGBBuffer      - The decompressed image data is stored as RGB
  415.                             triplets starting at this address. You must
  416.                             allocate enough memory to take the image. Use
  417.                             AllocRGBFromJPEG() to allocate the required
  418.                             memory space.
  419.    JPG_DecompressHook     - Calls a user specified function (see jpeg.h).
  420.                             DO NOT pass a hook structure pointer here. Put
  421.                             a pointer to your function. (See examples)
  422.    JPG_DecompressUserData - User data passed to the hook function (void *).
  423.    JPG_ScaleNum           - Scale decompressed data with this value.
  424.    JPG_ScaleDenom         - Scale decompressed data with this value.
  425.  
  426.   New tags requiring V2.1
  427.    JPG_ProgressHook       - Calls a user specified function (see jpeg.h).
  428.                             DO NOT pass a hook structure pointer here. Put
  429.                             a pointer to your function. (See examples).
  430.                             Returning a non NULL value from the hook will
  431.                             abort a load in progress.
  432.    JPG_ProgressUserData   - User data passed to the hook function (void *).
  433.  
  434.   New tags requiring V3.0
  435.    JPG_RenderHook         - Calls a user specified function (see jpeg.h).
  436.                             DO NOT pass a hook structure pointer here. Put
  437.                             a pointer to your function. (See examples).
  438.                             Returning a non NULL value from the hook will
  439.                             abort a load in progress.
  440.    JPG_RenderUserData     - User data passed to the hook function (void *).
  441.  
  442.   New tags requiring V4.0
  443.    JPG_DCTMethod         - The DCT processing method to use for decoding,
  444.                            defaults to DCT_ISLOW (see jpeg.h for others).
  445.  
  446.    INPUTS
  447.  jph - pointer to a struct JPEGDecHandle.
  448.  taglist - pointer to a tag list.
  449.  
  450.    RESULT
  451.  err - if non NULL contains an error code. (For a complete list of error
  452.        codes, see jpeg.h)
  453.  
  454.    WARNING
  455.  The jpeg code has a limition on scaling where, num must always be 1 and
  456.  denom can be either: 1, 2, 4, or 8. Undefined results occur if this is
  457.  not adhered to.
  458.  
  459.    BUGS
  460.  
  461.    SEE ALSO
  462.  AllocJPEGDecompressA(), FreeJPEGDecompressA()
  463.  
  464. jpeg.library/FreeJPEGCompress                   jpeg.library/FreeJPEGCompress
  465.  
  466.    NAME
  467.   FreeJPEGCompress -- Free a jpeg compression handle (V1)
  468.  
  469.    SYNOPSIS
  470.  err = FreeJPEGCompress( jph )
  471.                             a0
  472.  
  473.  err = FreeJPEGCompress( struct JPEGComHandle *jph )
  474.  
  475.    FUNCTION
  476.  Frees a jpeg handle.
  477.  
  478.    INPUTS
  479.  jph - pointer to a struct JPEGComHandle.
  480.  
  481.    RESULT
  482.  err - if non NULL contains an error code. (For a complete list of error
  483.        codes, see jpeg.h)
  484.  
  485.    WARNING
  486.  
  487.    BUGS
  488.  
  489.    NOTES
  490.  You are responsible for freeing the memory allocated to you by
  491.  CompressJPEG(), by calling FreeVec() on the pointer supplied to
  492.  AllocJPEGCompress().
  493.  
  494.  BUT if you are using the new JPG_MemoryPool tag in object allocation,
  495.  call an appropriate pool or puddle free routine.
  496.  
  497.    SEE ALSO
  498.  AllocJPEGCompressA(), CompressJPEGA()
  499.  
  500. jpeg.library/FreeJPEGDecompress               jpeg.library/FreeJPEGDecompress
  501.  
  502.    NAME
  503.   FreeJPEGDecompress -- Free a jpeg decompression handle (V1)
  504.  
  505.    SYNOPSIS
  506.  err = FreeJPEGDecompress( jph )
  507.                             a0
  508.  
  509.  err = FreeJPEGDecompress( struct JPEGDecHandle *jph )
  510.  
  511.    FUNCTION
  512.  Frees a jpeg handle.
  513.  
  514.    INPUTS
  515.  jph - pointer to a struct JPEGDecHandle.
  516.  
  517.    RESULT
  518.  err - if non NULL contains an error code. (For a complete list of error
  519.        codes, see jpeg.h)
  520.  
  521.    WARNING
  522.  
  523.    BUGS
  524.  
  525.    SEE ALSO
  526.  AllocJPEGDecompressA(), DecompressJPEGA()
  527.  
  528. jpeg.library/FreeJPEGRGBBuffer                 jpeg.library/FreeJPEGRGBBuffer
  529.  
  530.    NAME
  531.   FreeJPEGRGBBuffer -- Free an RGB triplet buffer (V1)
  532.  
  533.    SYNOPSIS
  534.  FreeJPEGRGBBuffer( buffer )
  535.                     a0
  536.  
  537.  void FreeJPEGRGBBuffer( void *buffer )
  538.  
  539.    FUNCTION
  540.  Frees an RGB triplet buffer allocated with AllocRGBFromJPEGA().
  541.  
  542.    INPUTS
  543.  buffer - Pointer to the allocated buffer returned by AllocRGBFromJPEG().
  544.  
  545.    RESULT
  546.  
  547.    WARNING
  548.  
  549.    BUGS
  550.  
  551.    SEE ALSO
  552.  AllocRGBFromJPEG()
  553.  
  554. jpeg.library/GetJPEGInfoA                           jpeg.library/GetJPEGInfoA
  555.  
  556.    NAME
  557.   GetJPEGInfoA -- Get information about a jpeg handle (V1)
  558.   GetJPEGInfo -- Varargs stub (V1)
  559.  
  560.    SYNOPSIS
  561.  err = GetJPEGInfoA( jph, taglist )
  562.                      a0   a1
  563.  
  564.  err = GetJPEGInfoA( struct JPEGDecHandle *jph, struct TagItem *taglist )
  565.  
  566.  err = GetJPEGInfo( jph, tag1, ... )
  567.  
  568.  err = GetJPEGInfo( struct JPEGDecHandle *jph, ULONG tag1, ... )
  569.  
  570.    FUNCTION
  571.  Retrieves information about the jpeg handle and returns the values in
  572.  variables passed in with the taglist.
  573.  
  574.   Available tags:
  575.    JPG_Width         - Returns the width of the decoded image (ULONG).
  576.    JPG_Height        - Returns the height of the decoded image (ULONG).
  577.    JPG_BytesPerPixel - Returns the number of bytes for every pixel,
  578.                        (usually 3 - JPCS_RGB) (ULONG).
  579.    JPG_RowSize       - Returns the width in bytes of one pixel row (ULONG).
  580.    JPG_ColourSpace   - Returns the type of colour space stored in the jpeg
  581.                        image (see jpeg.h for result codes) (UBYTE)
  582.  
  583.   Modifiers (used, but not saved in the jpeg handle):
  584.    JPG_ScaleNum      - Return values as though scaled with this value.
  585.    JPG_ScaleDenom    - Return values as though scaled with this value.
  586.  
  587.  The jpeg code has a limition on scaling where, num must always be 1 and
  588.  denom can be either: 1, 2, 4, or 8.
  589.  
  590.  Only JPEGDecHandles can have values read from them, JPEGComHandle passed
  591.  to this function returns a JPGERR_NONE and the taglist remains untouched.
  592.  
  593.    INPUTS
  594.  jph - pointer to a struct JPEGDecHandle.
  595.  taglist - pointer to an optional tag list specifying what data items to
  596.             retrieve for this jpeg handle.
  597.  
  598.    RESULT
  599.  err - if non NULL contains an error code. (For a complete list of error
  600.        codes, see jpeg.h)
  601.  
  602.    WARNING
  603.  
  604.    BUGS
  605.  
  606.    EXAMPLE
  607.  
  608.  err = GetJPEGInfo( jph, JPG_Width, &x, JPG_Height, &y, TAG_DONE );
  609.  
  610.    SEE ALSO
  611.  
  612.  
  613.