DO NOT EDIT THIS FILE -- it is generated from html/history.html

ExifTool Version History

Note: The most recent production release is Version 4.36.

Feb. 7/05 - Version 4.53 (production release)

  - Added FileNumber for Canon 20D (decoded by Juha Eskelinen)
  - Removed CanonA0Tag

Feb. 4/05 - Version 4.52

  - Added another CanonRaw test
  - Changes to Canon CRW documentation

Feb. 4/05 - Version 4.51

  - Finally found documentation for Canon CRW files (CIFF format)!!
  - Changed CanonRaw to bring code up to CIFF specification
  - Added a bunch more CanonRaw tags
  - Updated Canon CRW documentation

Feb. 2/05 - Version 4.50

  - Allow writing to specific IFD
  - Allow permanent tags (ie. MakerNotes tags) 'deleted' by setting them to an
    empty string if '' is a valid value for the tag
  - Added test for rewriting Nikon D70 information
  - Added missing inverse conversion routines for GPS tags (now they are all writable)
  - Decoded a few more Canon and CanonRaw tags
  - Added -z option to extract information from images in compressed files
  - Improved CanonRaw verbose output
  - Remove garbage after null terminator in CanonRaw string-type tags

Jan. 30/05 - Version 4.45

  - Added a few more Canon tags
  - Fixed bug with divide by zero error (in Perl, '0.0' is a true value -- doh!)

Jan. 30/05 - Version 4.44

  - Sort entries in synthesized Canon MakerNotes directory
  - Interpret Canon custom functions for models other than 10D in CRW files

Jan. 29/05 - Version 4.43

  - Synthesize Canon MakerNotes information when using -allTagsFromFile for a
    CRW file
  - Decode WhiteBalance table in Canon maker notes
  - Rename CanonRaw CanonFileType tag to CanonImageType

Jan. 28/05 - Version 4.42

  - Fixed problem where multiple IPTC tags could be created if replacing
    specific IPTC tag values with 'TAG-=VALUE'.
  - Made EXIF SceneType writable
  - Changed name of Nikon ISOUsed tag to ISO
  - Added documention of Canon RAW (CRW) file format

Jan. 27/05 - Version 4.41

  - Added write support for Canon exposure parameters
  - Change validation of CanonPictureInfo to get it working for Canon 20D

Jan. 26/05 - Version 4.40

  - Added ability to write Canon RAW (CRW) files.  With this format you aren't
    allowed to add or delete any new tags (just as with the MakerNotes), except
    for JpgFromRaw, which I like to be able to delete to save disk space.
  - Added validation of JpgFromRaw images
  - Relax filtering on non-ASCII characters by exiftool script to allow
    high-ASCII characters to be printed.
  - Changed the tense of Orientation values to try to make the meaning more
    clear.  This tag can be a bit confusing. It gives the rotation that must be
    applied to the image to view it properly (hence the rotation of the camera
    when the picture was taken).
  - Patched problem which was causing failed tests on some platforms (floating
    point format has 3 digits in exponent on Perl 5.8.5 MSWin32-x86, grrrr...)
  - API Changes:
      - Added 'Compact' option to not write blank padding as per XMP and IPTC
        specs.

Jan. 24/05 - Version 4.36 (production release)

  - Added support for reading Olympus Raw Format (ORF)

Jan. 23/05 - Version 4.35

  - Moved a couple of the informational warnings to verbose mode
  - Suppress warnings an non-critical errors with -m option
  - Made a few more of the EXIF tags writable
  - Made model-dependent tags Pentax FocalLength and Olympus Quality writable
  - Added ability to write CanonCustom tags
  - Added range check for integer values

Jan. 21/05 - Version 4.34

  - Fixed problem when writing Canon maker notes with -allTagsFromFile
  - Added -o option to write to different file or directory
  - Added handler to clean up temporary file on Ctrl-C
  - Re-wrote routine to rationalize floating point values (it is slower now, but
    produces much prettier fractions)
  - Other minor improvements to writer code

Jan. 19/05 - Version 4.33

  - Added check at higher level and return warning if trying to delete
    information from maker notes
  - Make GPS latitude and longitude a bit more flexible about the format they
    accept when writing
  - Updates to documentation

Jan. 19/05 - Version 4.32

  - Now rewrites Casio EX-Z3 maker notes properly (well, not actually
    'properly', but the way they were written in the first place, which is
    wrong)
  - Added warning when writing information if original IFD entries were not in
    the proper sequence, which is a violation of EXIF specs.  (And surprise,
    you'll never guess who does this too...  Yup, the EX-Z3.)
  - Fix parsing problem with GPSProcessingMethod and GPSAreaInformation
  - No longer truncates 'undef' values at first null character
  - Changed all DataDump tags to binary data types
  - Changed some warning messages
  - Documented the -m option (it's now official, even though it's been there
    since version 4.10)
  - Added some more writer tests

Jan. 18/05 - Version 4.31

  - Now also copies over preview image in Nikon NEF files

Jan. 18/05 - Version 4.30

  - Now copies over preview images in EXIF data (large, external previews still
    not copied).
  - Account for funny offsets in Casio EX-Z3 maker notes while extracting data
    (but haven't figured out how to handle them when writing)
  - Fix but introduced in 4.20 that broke extraction of Canon PreviewImage

Jan. 17/05 - Version 4.23

  - Improve handling of unrecognized maker notes when writing

Jan. 17/05 - Version 4.22

  - Added check in -AllTagsFromFile to test for pointers in the maker notes
    directory running outside the maker notes data. If they do, a warning is
    issued and the maker notes are rebuilt properly before copying.
  - Fixed problem which could corrupt some values when editing maker notes.

Jan. 17/05 - Version 4.21

  - Added Olympus Red/BlueBalance

Jan. 17/05 - Version 4.20

  - Added ability to edit MakerNotes!
  - Added more validation when writing IPTC information
  - Fixed display of Nikon FlashExposureComp for negative values
  - Fixed problem where the large JPEG image in Nikon and Pentax raw files was
    misidentified as the ThumbnailImage.  It is now extracted as JpgFromRaw.
    This allows all 3 JPEG images contained in Pentax PEF files to be extracted:
    ThumbnailImage, PreviewImage and JpgFromRaw.
  - Fixed problem on systems that use backslashes in directory names that
    prevented exiftool from finding its libraries if not installed
  - Changed many Pentax tag names to remove "Pentax" prefix and conform more to
    the other tag names (moving information between files of different formats
    is much easier if tags have standardized names):
      - PentaxPictureMode => PictureMode
      - PentaxFocusMode => FocusMode
      - PentaxWhiteBalance => WhiteBalance
      - PentaxAEMetering => MeteringMode
      - PentaxFocalLength => FocalLength
      - PentaxZoom => DigitalZoom
      - PentaxSaturation => Saturation
      - PentaxContrast => Contrast
      - PentaxSharpness => Sharpness
  - Fixed FocalLength conversion for Pentax Optio S
  - Fixed printout of Nikon FileSystemVersion for older Nikon models
  - More improvements to reliabilty of preview image extraction
  - Fixed Quality for Olympus E-1

Jan. 12/05 - Version 4.15

  - Added Pentax LensType and RawImageSize tags
  - Change printing of some unknown values to hexadecimal
  - Now recognizes Nikon PEF files
  - More reliable extraction of preview and thumbnail images, particularly for
    the various models of Pentax cameras.
  - Added decoding of the Canon 20D custom functions and a new Canon20D shortcut
    (thanks to Christian Koller)
  - Improved write logic for EXIF information
  - Improved logic in determining byte ordering of maker notes

Jan. 10/05 - Version 4.14

  - Fixed problem introduced in 4.13 that messed up new 4.12 features.  doh.
    (and added test to keep this from happening again!).
  - No longer store bad directory data as a tag (dump in verbose output instead)

Jan. 9/05 - Version 4.13

  - Added check on size of new ThumbnailImage so ExifTool doesn't try to write
    an image that is too large (>60k) into the JPEG EXIF APP1 segment.

Jan. 9/05 - Version 4.12

  - -AllTagsFromFile option now copies over the maker notes
  - Changed some misleading warning messages

Jan. 8/05 - Version 4.11

  - Improved validation of tag values with -AllTagsFromFile option

Jan. 7/05 - Version 4.10

  - Added ability to write EXIF, IPTC and XMP tags in JPEG and TIFF files!
  - Allow Photoshop APP13 data to span multiple segments (read and write)
  - Added -TAG+=VALUE, -TAG-=VALUE and -TAG<=VALUE syntaxes
  - Added -GROUP:TAG syntax to allow tag group to be specified
  - Added powerful -AllTagsFromFile=SRCFILE option to copy all tags from file
  - Added -listw option to list all writable tags
  - Added -E option to escape output values for HTML
  - Fixed -w option to only replace extension after last '.' in filename if more
    than one '.'
  - Unescape XMP character codes when extracting values (and escape again when
    writing)
  - Now processes all IFD's of TIFF imags (not just IFD0)
  - Added data length check in hex dump of verbose option
  - Allow group name to be specified as prefix to tag name on command line
  - Renamed a few Nikon tags: FlashExposureComp to FlashExposureBracketValue,
    FEC to FlashExposureComp, and ShutterReleaseMode to ShootingMode
  - Extract Nikon preview image
  - Changed descriptions for Aperture and Shutter Speed to drop the Av/Tv Canonism
  - Improved logic to recognize more types of unknown maker notes
  - Recognize a couple more values of the Canon WhiteBalance tag
  - Renamed IPTC 'SupplementalCategory' to 'SupplementalCategories'
  - Handle timezone in times
  - API Changes:
      - Fixed problem where first tag name passed to GetInfo() was ignored
      - The values returned by ImageInfo() and GetInfo() may contain array
        references to indicate lists of values if PrintConv is disabled.
      - Added a bunch of new stuff...

Dec. 15/04 - Version 4.05

  - Added a couple of Nikon tags
  - Now preserves original file by renaming to "NAME_original" when writing
    information
  - Don't preserve file time by default when writing.  Added -P option to do this.
  - Changes to spec file

Dec. 11/04 - Version 4.04

  - Fixed problem which could corrupt JPEG images when adding comments (Note: if
    done, the damage can reversed by removing the comments with the same version
    of ExifTool that added them.)

Dec. 6/04 - Version 4.03

  - Major overhaul of verbose message output
  - Change -v option to allow verbose level to be specified (ie. -v3 = very very
    verbose)
  - Added a new Nikon tag (SceneMode).
  - Count images which were unchanged when writing tags
  - Changed FileType 'JPG' to 'JPEG'

Dec. 2/04 - Version 4.02

  - Fixed problem with rewriting some JPEG images
  - Preserve original file modification time when updating tags in a file
  - Report of number of files updated
  - API Changes:
      - Changed arguments of WriteInfo() and allow scalar and file references to be
        used

Dec. 1/04 - Version 4.01

  - Changed -o option to -w to avoid confusion since we now write image files too
  - Added warning if specified image file doesn't exist

Dec. 1/04 - Version 4.00

  - Started down the road of adding write support:
      - Allow writing of Comment tag to JPEG and GIF files
  - API for write functions still under development and is likely to change
  - Clean up formatting of Nikon string tags (fix case and remove trailing spaces)

Nov. 30/04 - Version 3.96

  - Changed JPEG read routine to speed things up a bit
  - Added a few more ICC_Profile tags

Nov. 25/04 - Version 3.95

  - Improved compatibility with old Perl versions (now runs, albeit with
    warnings, on 5.003)

Nov. 25/04 - Version 3.94 (production release)

  - Patched problem with reading XMP data using Perl 5.6.x (Perl bug)
  - Put lib directory first in exiftool include list to take precidence over
    installed versions
  - Continue trying to parse JPEG image after an unrecognized APP1 segment

Nov. 24/04 - Version 3.93 (production release)

  - Final round of ICC_Profile updates
  - Increase precision of extracted rational values
  - Internal Changes:
      - Build in better support for all data formats
      - Standardize data format names
      - Clean up and streamline data read routine

Nov. 22/04 - Version 3.92

  - Fixed problem with -p option when multiple files are specified
  - Enhancements to ICC_Profile information, including extracting information
    from profile header
  - Subdivide ICC_Profile group in family 1
  - Added Minolta ImageStabilization tag

Nov. 20/04 - Version 3.91

  - Fixed problem where some tags were not extracted properly from Canon CR2 files
  - Internal Changes:
      - Cleaned up and simplified pointer calculations and dirInfo members

Nov. 20/04 - Version 3.90

  - Extract information from ICC Profiles
  - Extract undocumented IFD0 Photoshop tags
  - Added support for Minolta RAW (MRW) file format
  - Added support for Konica-Minolta cameras
  - Improved decoding for Minolta maker notes
  - Extract (the sometimes misleading) EXIF WhiteBalance tag even if
    WhiteBalance was extracted from the maker notes if the Duplicates option is
    set.  (Previously it was only extracted as an Unknown tag in this case.)
  - API Changes:
      - Return list of all tags in image if GetFoundTags() or GetTagList() are
        called before ImageInfo() or GetInfo()

Nov. 15/04 - Version 3.85

  - Extract a couple more Photoshop tags (including PhotoshopQuality)
  - All XMP lists now comma separated (previously, 'alt' lists were separated by '|')
  - API Changes:
      - GetValue() now returns reference to array if values form a list and
        ValueConv is specified

Nov. 12/04 - Version 3.84

  - Added test of GetTagID()
  - Fixed bug in GetTagID() which was causing special tags to get overwritten

Nov. 12/04 - Version 3.83

  - Added -D and -H command line options
  - API Changes:
      - Added GetTagID()

Nov. 11/04 - Version 3.82 (production release)

  - Improved diagnostic output for failed tests in installation

Nov. 11/04 - Version 3.81

  - Updated Olympus module to also support Epson cameras
  - Moved MakerNotes code into separate module
  - Added tests for Sony and Unknown maker notes

Nov. 10/04 - Version 3.80

  - Added support for Panasonic/Leica cameras
  - Updated Pentax module to also support Asahi cameras
  - Decode a couple more Minolta camera model types

Nov. 4/04 - Version 3.74 (production release)

  - Properly localize $_ in public Image::ExifTool subroutines

Nov. 3/04 - Version 3.73

  - Changes to tests to avoid false failures on MSWin32-x86-multi-thread 4.0

Nov. 1/04 - Version 3.72 (production release)

  - Fixed minor bug in generation of family 1 XMP group names
  - Changes to Photoshop family 2 groups

Oct. 30/04 - Version 3.71

  - Switched group families 0 and 1 so the general location is now the default
  - Fixed bug when sorting by order of group for any family other than 0
  - Added test 17 to ExifTool.t

Oct. 29/04 - Version 3.70

  - Major improvements to XMP parsing
  - Divided XMP group in family 0 based on the XMP namespace prefix
  - Changed a few long tables to binary type
  - Recognize some new YCbCrSubSampling values
  - Display DNG LocalizedCameraModel in plain text
  - Patched problem in FileSource reported by Sigma cameras
  - Added information about tag format to verbose hex dump

Oct. 22/04 - Version 3.61

  - Added support for DNG file format
  - Added and updated a number of EXIF tags for FAX and other uncommon images
  - Added Photoshop URL tag
  - Attempt to extract image from files with unrecognized extensions assuming
    TIFF format
  - Added "Image format error" if the image type is recognized but the format is
    bad
  - Changed "Unknown file type" error to "Unknown image type"
  - Moved POD documentation into separate .pod files
  - Started referencing sources for tag definitions in the source code

Oct. 1/04 - Version 3.60 (production release)

  - Changed group family 0 to divide EXIF group into individual IFD groups
  - Fixed typos in some Casio tag names
  - API Changes:
      - Changed name of File::RandomAccessFile to File::RandomAccess
      - Changed default setting of Duplicates to 1

Sept. 21/04 - Version 3.51

  - Improvements to interpretation of Nikon D70 ISO settings

Sept. 16/04 - Version 3.50

  - Fixed problem with duplicate tags showing up without the -a option
  - Changed Nikon DataDump to a binary type
  - Added D70Boring shortcut

Sept. 14/04 - Version 3.49

  - Changed installation to also install the 'exiftool' script

Sept. 13/04 - Version 3.48

  - Changed UserComment to skip first 8 bytes since the comments come after an 8
    byte character code

Sept. 10/04 - Version 3.47

  - Added support for second type of Casio maker notes (MakerNoteCasio2)

Sept. 1/04 - Version 3.46

  - Fixed minor bug in PrintConv of FileNumber for CanonRaw files

June 3/04 - Version 3.45

  - Recognize Canon 1D Mk II raw files (.CR2)
    (Note: Not properly decoding maker notes from these files yet)

May 28/04 - Version 3.44

  - Improved validity check of Sony maker notes

May 18/04 - Version 3.43

  - A couple more changes to the Nikon maker notes

May 17/04 - Version 3.42

  - Additions to Nikon maker notes for values derived from D70

Apr. 28/04 - Version 3.41

  - Fixed some errors when running on older Perl versions

Apr. 7/04 - Version 3.40

  - Try to extract data from unrecognized maker notes (assuming standard EXIF format)
  - Added tests for different maker notes

Apr. 6/04 - Version 3.37

  - Added support for Sigma maker notes
  - Remember to add new files to MANIFEST so they get included in release.  Doh

Apr. 6/04 - Version 3.36

  - Added support for Sanyo and Minolta maker notes
  - Added skeleton for interpeting Sony maker notes
  - Interpret Pentax PrintIM

Apr. 6/04 - Version 3.35

  - Added support for Nikon PrintIM
  - Changed names of duplicate EXIF tags

Apr. 5/04 - Version 3.34

  - Added all missing tag definitions from TIFF 6 standard
  - Added a few more EXIF tag definitions
  - Interpret PrintIM IFD
  - Fix interpretation of Interoperability IFD
  - Fixed potential endless loop bug introduced in version 3.33

Apr. 5/04 - Version 3.33

  - Parse SubIFD of Nikon NEF file (now extracts raw image size and thumbnail image)

Apr. 2/04 - Version 3.32

  - Changes to some Nikon tag names
  - Added Nikon Saturation
  - Documentation improvements

Mar. 31/04 - Version 3.31

  - Now recognizes NEF (Nikon Electronic image Format) files

Mar. 29/04 - Version 3.30

  - Removed -w option
  - Fixed problem with some XMP tags being put in the EXIF group
  - More minor speed improvements
  - API Changes:
      - GetDescription() now requires an ExifTool object reference
      - Removed WarnDuplicateDescriptions()

Mar. 26/04 - Version 3.27

  - Optimized a few routines to speed things up a bit
  - API Changes:
      - Changed GetDescription() documention to indicate it is called with an
        ExifTool object (this is still optional, but will be mandatory with the next
        version)

Mar. 25/04 - Version 3.26

  - Don't generate warning if end of IPTC block is padded with nulls

Mar. 19/04 - Version 3.25

  - Fixed problem with 'Input' sort order

Mar. 19/04 - Version 3.24

  - Only return PreviewImage if it is a valid JPG (otherwise set 'Warning')

Mar. 16/04 - Version 3.23

  - API Changes:
      - Added GetGroups()
      - GetGroup() now returns group names for all families if used in list context
        and family not specified

Mar. 12/04 - Version 3.22

  - API Changes:
      - Changed GetInfo() to return list of tags like ImageInfo() if list reference
        provided
      - Fixed bug that caused GetInfo() to ignore specified tags

Mar. 11/04 - Version 3.21

  - Fixed problem with Composite group in family 1
  - Changed case of Exif to EXIF in family 1
  - -group option now lists Composite group as it should
  - Internal Changes:
      - Cleaned up handling of function arguments

Mar. 10/04 - Version 3.20

  - Added -group option
  - Added group families 1 and 2
  - Can now specify excluded tags with leading '-' (replaces -x option)
  - API Changes:
      - Added ClearOptions(), ExtractInfo(), GetInfo(), CombineInfo(), GetTagList()
        and GetAllGroups()
      - Removed IsVerbose() function (use Options('Verbose') instead)
      - Allow groups to be excluded by specifying leading '-' on group name
      - ImageInfo() and GetInfo() now use specified group order to set tag
        precidence if Duplicates option is not set
      - Change default value of Duplicates option back to 0

Mar. 1/04 - Version 3.15

  - Changed format of all date and time tags to EXIF standard
  - Added some composite date/time tags
  - Fixed date formatting so -d option should now work with all combined
    date/time tags
  - Other minor changes to GPS information
  - Improvements to TIFF processing
  - Set value to "Undefined" if PrintConv evaluates to undefined value
  - Added -G option
  - API changes:
      - Changed all option names: shortened and changed to mixed case (sorry!)
  - Internal changes:
      - Standardized arguments to all processing procedures
      - Made call to processing procedure more automatic
      - Removed TABLE_TYPE tag and added PROCESS_PROC
      - Added ProcessTagTable() member function

Feb. 27/04 - Version 3.14

  - Added GPS tag conversions and GPS test
  - Values that can't be converted now show up simply as "Unknown (X)"

Feb. 26/04 - Version 3.13

  - Print out errors from exiftool script (since Image::ExifTool no longer
    prints them)
  - Added more tests
  - Failed tests now leave ".failed" file in "t" directory for post mortem

Feb. 25/04 - Version 3.12

  - Moved all image-related warnings to new Warning tag

Feb. 25/04 - Version 3.11

  - Added GeoTiff support
  - Added -x option
  - Improvements to documentation
  - Improve XMP parsing for 'Bag' elements
  - Capitalize first letter of XMP tag descriptions
  - Patch problem with APP13 resource written by older Photoshop versions
  - API changes:
      - Added EXCLUDE and GROUP# options
      - Change default value of SAVE_DUPLICATES option to 1

Feb. 20/04 - Version 3.10

  - Restructuring only -- the behaviour of the exiftool
script was not changed
  - Moved html documentation to new html directory
  - API changes:
      - Conform to standard Perl module mechanics:
          - Changed ExifTool package name to Image::ExifTool
          - Added Makefile.PL and other standard files
          - Added Perl pod documentation
          - Added standard test files
          - Moved modules into lib directory
          - Changed "TagTables" directory name to "ExifTool"
      - Added extra parameter in new RandomAccessFile

Feb. 20/04 - Version 3.05

  - Fixed problem where output files (-o) weren't written if -p option used

Feb. 19/04 - Version 3.04

  - Added -U option to allow display of unknown values in Canon binary data blocks
  - Made unknown tag names more specific when -u or -U option used
  - Added RawData and DecoderTable tags (for Canon RAW file)

Feb. 17/04 - Version 3.03

  - Fixed RandomAccessFile package name (should have been File::RandomAccessFile)
  - Added IxusAFPoint tag to Canon maker notes
  - Avoid scanning past end of Canon binary data blocks
  - API changes:
      - GetFoundTags() and GetRequestedTags() now return list instead of list
        reference

Feb. 16/04 - Version 3.02

  - Improved handling of Pentax maker notes

Feb. 15/04 - Version 3.01

  - API changes:
      - Added GetValue() function
      - Completed API documentation

Feb. 13/04 - Version 3.00

  - Removed -all option (it is now the default -- specify -common for previous
    default behaviour)
  - Added -a option to allow printout of duplicate tag values
  - API changes:
      - I am finally happy with the API, so future major changes are less likely
        (hence the major version number)
          - No longer return ARRAY reference for list of tags (Instead, tag values
            are joined in a comma separated list if tag 'List' flag is set)
      - Added SAVE_DUPLICATES option
      - Added BuildCompositeTags() to EXPORT_OK list
      - GetFoundTags() now sorts tags in specified order
      - GetDescriptions() longer returns undef if the description doesn't exist

Feb. 12/04 - Version 2.71

  - Still more playing with Pentax maker notes
  - More API changes:
      - Added RandomAccessFile.pm
      - All image file i/o now done through a RandomAccessFile object
        --> allows proper piping and use of string i/o
      - Allow scalar reference to be passed to ImageInfo() (for string i/o)

Feb. 11/04 - Version 2.70

  - More tweaking of Pentax maker notes
  - Changed API to be more object oriented:
      - Removed SetVerbose(), ExtractUnknown(), SetDateFormat(),
        EnablePrintConversion(), EnableCompositeTags()
      - Added Options() to replace above functions
      - Changed WarnDuplicateTags() to WarnDuplicateDescriptions()
      - Added GetFoundTags() and GetRequestedTags()
      - Many functions now take ExifTool object reference as first argument
      - ImageInfo() no longer returns reference to ExifTool object when used in list
        context (you have to use "new ExifTool" and the OO form of ImageInfo() if
        you want the object)

Feb. 10/04 - Version 2.62

  - Added -u option to allow display of unknown tags
  - Major changes to Pentax maker notes (still needs work)

Feb. 09/04 - Version 2.61

  - Allow file reference to be passed to ImageInfo()
  - Allow file to be read from standard input by specifying "-" as file name
  - Add FileType tag

Feb. 07/04 - Version 2.60

  - Improve IPTC parsing and add support for more IPTC data types
  - Read Photoshop APP13 records properly
  - Added -g option
  - Move shortcuts into separate module
  - Changes to API:
      - Removed LoadAllTables() and added GetAllTags()
      - Removed GetDescriptions() and added GetDescription()
      - Changed GetShortcuts() to return a list
      - Added tag groups and GetGroup() function
      - Return object data from ImageInfo() for use in GetGroup()

Jan. 30/04 - Version 2.51

  - Speed up JPG reading code
  - API no longer returns references to image-specific static data
  - Added ExifToolVersion tag

Jan. 29/04 - Version 2.50

  - Changed API to return binary data as SCALAR reference and
    list of values as ARRAY reference
  - Attempt to make case of tag descriptions more consistent

Jan. 28/04 - Version 2.41

  - Scan photoshop JPG 0xe1 garbage for possible XMP information

Jan. 27/04 - Version 2.40

  - Improved handling of XMP data
  - Changed output format and added -l option

Jan. 21/04 - Version 2.36

  - Don't output trailing linefeed when -b option used

Jan. 19/04 - Version 2.35

  - Changes to verbose output
  - Added TagTables::CanonRaw::CleanRaw() as an API utility function

Jan. 16/04 - Version 2.34

  - Added 'Validate' check for Canon data fields
  - Changed ScaleFactor35efl to use FocalLengthIn35mmFormat if available

Jan. 15/04 - Version 2.33

  - Added ScaleFactor35efl, FocalLength35efl, Lens35efl
  - Allow Composite tags to Require/Desire each other
  - Changed FlashType to use FlashBits instead of CanonFlashMode

Jan. 13/04 - Version 2.32

  - Added -d (date format) option
  - Added -p (print format file) option

Jan. 9/04 - Version 2.31

  - Exif WhiteBalance no longer overrides maker-specific WhiteBalance

Jan. 8/04 - Version 2.30

  - Added support for IPTC format information

Jan. 6/04 - Version 2.25

  - Fixed problem with ImageInfo() function prototype
  - Fixed printout of JpgFromRaw message (doesn't effect JPG extraction)
  - Set output files to binmode (including STDOUT) if -b option used

Jan. 1/04 - Version 2.24

  - Fixed -list option to show all available tag names

Dec. 18/03 - Version 2.23

  - Changed "Disable" routines to "Enable"

Dec. 17/03 - Version 2.22

  - Fixed make/model tags which I broke with a recent change
  - Removed null terminator from returned strings

Dec. 16/03 - Version 2.21

  - Fixed problem with decoding some Nikon maker notes
  - General improvements and tweaks to the code

Dec. 14/03 - Version 2.20

  - Now extracts preview image from 300D JPG files (PreviewImage)
  - Changed ThumbnailData tag name to ThumbnailImage

Dec. 12/03 - Version 2.10

  - ExifTool::ImageInfo now returns reference to hash instead of hash

Dec. 10/03 - Version 2.01

  - Minor fixes for reading of RAW files

Dec. 09/03 - Version 2.00

  - Added support Olympus, Casio and Nikon cameras
  - Now recognized GPS information
  - Moved config information to TagTables modules
  - Restructured API

Dec. 05/03 - Version 1.72

  - Changes to composite Aperture and ShutterSpeed decisions

Dec. 05/03 - Version 1.71

  - Read 10D Custom functions from CRW file too (thanks dpophyte)

Dec. 05/03 - Version 1.70

  - Added custom functions for 10D and 1D

Dec. 04/03 - Version 1.62

  - Decode known flash bits

Dec. 04/03 - Version 1.61

  - Override ShutterSpeed with BulbDuration if available
  - Change -s option to add tab-separated list

Dec. 03/03 - Version 1.60

  - Big improvements in reading Canon RAW files

Nov. 29/03 - Version 1.50

  - Added ability to extract JPG from RAW
  - Added ExifData tag to allow entire EXIF block to be dumped

Nov. 26/03 - Version 1.40

  - Split up config files to speed things up
  - Added ability to extract binary data
  - Added ThumbnailData tag (to allow extracting JPG thumbnails)

Nov. 25/03 - Version 1.30

  - Added experimental Canon RAW file support

Nov. 22/03 - Version 1.20

  - Now reads TIFF files too

Nov. 20/03 - Version 1.12

  - Don't translate PhotoShop Brightness, etc

Nov. 20/03 - Version 1.11

  - Attempt to fix problem on hp
  - clean up code a bit
  - added '-ver' command-line option

Nov. 20/03 - Version 1.10

  - Added support for XMP format

Nov. 19/03 - Version 1.00

  - Initial release
