Revision history for Image::Info

2023-08-03  Slaven Rezic  <>

    Release 1.44

    Stable release with the change in 1.43_50

2023-07-25  Slaven Rezic  <>

    Release 1.43_50

    Support for AVIF files (PR #12, thanks to Zefram and Michael Kroell)

2022-10-03  Slaven Rezic  <>

    Release 1.43

    Stable release with all changes in 1.42_50

2022-07-17  Slaven Rezic  <>

    Release 1.42_50

    Fix XML::Simple-related test failures (RT #143685)

    Cease warnings with inconsistent maker info (RT #133006)

    Don't fail on invalid rational value in EXIF (RT #135126)

    Don't bail out on erroneous APP1 EXIF segments (RT #131616)

2019-10-19  Slaven Rezic  <>

    Release 1.42

    Stable release with all changes in 1.41_50

2019-10-16  Slaven Rezic  <>

    Release 1.41_50

    Support for WEBP files (RT #130529) (by Nicolas Clark)

    Cease a warning (by H.Merijn Brand)

    Various minor test and CI polishing

2017-07-12  Slaven Rezic  <>

    Release 1.41

    Stable release with the change in 1.40_50

    Additionally more diagnostics in t/string.t

2017-06-30  Slaven Rezic  <>

    Release 1.40_50

    Support iTXt chunks in PNGs (RT #122285) (by Nicholas Clark)

2017-03-21  Slaven Rezic  <>

    Release 1.40

    Stable release with the change in 1.39_50

2017-03-19  Slaven Rezic  <>

    Release 1.39_50

    Rational values work again (RT #117480)

    Fix warnings while processing PNGs (RT #118495) (by Johan Vromans)

    Pod spelling fixes (by Salvatore Bonaccorso and Slaven Rezic)

2016-10-08  Slaven Rezic  <>

    Release 1.39

    Stable release with all changes in 1.38_50..1.38_51

2016-10-01  Slaven Rezic  <>

    Release 1.38_51

    Just recreated distribution with a changed SIGNATURE.

    Release 1.38_50

    Don't allow XXE (XML External Entities) processing while parsing
    SVG files. Addresses RT #118205. This is a potentially
    incompatible change; however usually SVG files do not rely on XXE.

2015-04-19  Slaven Rezic  <>

    Release 1.38

    Pod typo fixes (by hatorikibble)

    New xt tests (synopsis, strict, kwalitee, by hatorikibble)

2014-12-31  Slaven Rezic  <>

    Release 1.37

    Stable release with all changes in 1.36_51..1.36_52

2014-12-29  Slaven Rezic  <>

    Release 1.36_52

    Handle invalid TIFF chunks: stop processing if an unrecognized
    fieldtype is encountered. This is an additional fix for RT #100847.

2014-12-19  Slaven Rezic  <>

    Release 1.36_51

    Use IO::Scalar instead of opening a scalar, for all
    perls < 5.21.7. This is to prevent possible segmentation faults
    with faulty images. See RT #100847 and

    Fix a "Variable declared in conditional statement" error.

    Fix a couple of typos.

2012-07-05  Slaven Rezic  <>

    Release 1.36

    Stable release with all changes in 1.35_50..1.35_51

2013-06-28  Slaven Rezic  <>

    Release 1.35_51

    Ignore reading jpeg thumbnail image with no content, patch
    provided by Kosei Moriyama,

2013-05-06  Slaven Rezic  <>

    Release 1.35_50

    Fixed pod_cov.t test.

2013-04-10  Slaven Rezic  <>

    Release 1.35

    Stable release with the change in 1.34_50

2013-04-03  Slaven Rezic  <>

    Release 1.34_50

    image_info on Jpeg with bad EXIF data produced "substr outside of
    string" exception in Image::TIFF (RT #84122, patch provided by
    Steve Purkis)

2013-02-29  Slaven Rezic  <>

    Release 1.34

    Stable release with all changes in 1.33_50..1.33_51

2013-01-28  Slaven Rezic  <>

    Release 1.33_51

    Handle corrupt JPEG files with extraneous bytes

2013-01-25  Slaven Rezic  <>

    Release 1.33_50

    Limited support for WBMP files.

2012-11-03  Slaven Rezic  <>

    Release 1.33

    Added test image for RT #78471.

2012-10-25  Slaven Rezic  <>

    Release 1.32_52

    Handle BMP files with negative heights (RT #78471).

2012-10-24  Slaven Rezic  <>

    Release 1.32_51

    Signature fix.

2012-10-23  Slaven Rezic  <>

    Release 1.32_50

    Repacked because of Module::Install 1.04 problems (see mail from
    Miyagawa). Now Image::Info is again using good old EUMM.

2012-02-21  Slaven Rezic  <>

    Release 1.32

    Stable release with all changes in 1.31_50..1.31_51

2011-12-28  Slaven Rezic  <>

    Release 1.31_51

    Release 1.31_50

    SVG files without XML preamble are now also recognized.

    Bundled Module::Install 1.04.

2010-09-25  Slaven Rezic  <>

    Release 1.31

    Stable release with all changes in 1.30_50..1.30_53

    Patch by Tony Hook to fix handling of PPM files with 2

2010-02-09  Slaven Rezic  <>

    Release 1.30_53

    Repacked because Module::Install 0.93 does not ignore xt tests.

2010-02-09  Slaven Rezic  <>

    Release 1.30_52

    Force using libxml's SAX parser.

    Fixed some PPM issues (e.g. incomplete header, numify

2009-11-22  Slaven Rezic  <>

    Release 1.30_51

    Fixes in GIF reader (unknown intro codes are now only warnings,
    application chunks are forced into the first image data)

    Added some test images for previous fixes.

2009-11-14  Slaven Rezic  <>

    Release 1.30_50

    Support for Microsoft .ico files (Image::Info::ICO).

    Fixes in JPEG parsing (skip pad 0xFF in markers).

    Fixes in GIF reader ("trailer" seems to be optional).

    Somewhat better recognition of XBM files.

    XPM handling: Corrected color parsing. Try harder to find X11's
    rgb.txt. Ignore comments in rgb.txt.

    Reordered magic checks to have more common image formats first.

    Introduced Bundles.

    Some Pod cleanups.

    Additional author tests in xt.    

2009-10-31  Slaven Rezic  <>

    Release 1.30

    Stable release with all changes in 1.29_51..1.29_53

2009-09-23  Slaven Rezic  <>

    Release 1.29_53

    SVG parsing: load_ext_dtd is now set to false, to avoid unnecessary
    possible network connections; this is also ceasing errors with
    libxml 2.7.x.

2009-09-16  Slaven Rezic  <>

    Release 1.29_52

    More diagnostics in failing tests.
    Added tests cases for RT #49546.

2009-09-14  Slaven Rezic  <>

    Release 1.29_51

    Fixed "substr outside of string" problem with Fujifilm FinePix S1000fd
    images (RT #49546)

2009-08-14  Slaven Rezic  <>

    Release 1.29_50

    Marked Compress::Zlib as recommended module and skip a test if it is
    not installed (RT #48415)

2009-07-31  Slaven Rezic  <>

    Release 1.29

    SVG parsing is now done by XML::LibXML::Reader, if available,
    otherwise the old XML::Simple-based code is used. Using the
    new code is much more memory efficient and faster. The old
    module can still be used by setting

    Removed deprecation notice.

    Bundled Module::Install 0.91.

    Ceased a warning in the JPEG parsing code with perl 5.6.x.

    Lowered minimum required Perl version to 5.6.0 (There's no
    evidence that it does not work with that Perl version).

    Ceased warnings when reading PNG files with ztxt (compressed
    comment) chunk (RT #28054)

2008-03-30 v1.28 Tels 128 tests
  * raise minimum required Perl version to v5.6.2
    (it doesn't work on 5.005 anyway, open() with three arguments
     is not supported there and I don't have time to rewrite the code
     for outdated Perl versions. If you need it to run on 5.005, write
     a patch and file a bug report please.)
  * fix bug #15167: Incorrect width and height for JPG files
    (the fix now keeps the highest value for width/height, instead of
     creating an array ref with all the values)
  * remove Build.PL (bundle Module::Install 0.71)

2007-12-15 v1.27 Tels 128 tests
  * add both main authors to META.yml (does not work yet due to bug
    in Module::Install)
  * fix bug #30890: [PATCH] Transposed lines in documentation
  * fix bug #31165: Add attribute for parsing TIFF images (Thanx Adam Witney!)

2007-09-09 v1.26 Tels 128 tests
  * clarify the license by adding "v5.8.8" (otherwise it is quite unclear
    which Perl version, release or product the license text refers to)
  * fix bug #29088 - Another hanging image
  * fix bug #29243 - Exiftext fields (like UserComment) not parsed correctly

2007-05-25 v1.25 Tels 127 tests
  * fix bug #26130 - hang in parsing JPG/TIFF images with repeating
    block numbers

2007-02-24 v1.24 Tels 125 tests
  * fix bug #22507: add missing compression modes for TIFF
  * fix bug #25032: fix TIFF ASCII text field handling (Thanx BJWHEELER!)
    (This enables, among other things the ImageDescription tag for TIFF

2006-09-30 v1.23 Tels 122 tests
  * regenerate the stale META.yml file
  * fix svg.t failing if no XML::Simple was installed (bug #21166)
  * fix _process_ifds call (missing underscore) (Thanx to Dermot Paikkos!)

2006-07-16 v1.22 Tels 123 tests
  * fix bug #19071: byteorder for TIFF on 64-bit systems broken
  * better error message in case SOI is missing in a JPEG
    (still no fix for #20183)
  * SVG:
    + use the correct MIME type "image/svg+xml"
    + version extraction was broken
    + comments had too much whitespace at front/end (these should be
      ignored and not extracted anyway)
  * add svg.t
  * resize test.jpg and test.png to make dist smaller
  * add interlace.png and beef up t/png.t

2006-05-01 v1.21 Tels 96 tests
  * move the code to build to dev/
  * include a pre-generated into MANIFEST
    (fixes the indexing issue with CPAN)
  * dont use Symbol(), it is required before its usage anyway
  * allow exporting of determine_file_type and image_type
  * remove a needless diag message in string.t (Thanx jpo!)
  * add two test TIFFs (little/big endian) and a test file (Thanx jpo!)
  * create a new, much smaller test.rle file
  * more tests in t/bmp.t

2006-03-13 v1.20 Tels 74 tests
  * a few additions to Panasonic MakerNote in EXIF parsing
  * use Module::Install 0.60 to fix breakage from 0.58
  * fix bug #8193: Adds direct access to the determine_file_format logic
    With the following changes:
    + read only 11 bytes to determine file format (tiny.pgm is 11 bytes long)
    + fix provided patch to really work
  * fix bug #18147: 
    + new TIFF code failed if the system endianness didn't match the TIFF
       image endianness - thanx jpo!
  * replace the link to the TIFF spec with a public link - thanx jpo!

2006-03-05 v1.19 Tels 74 tests
  * finally fix bug #6558: (Thanx jpo!)
    + fix typos: Image::X(B|P)M must be Image::X(p|b)m (Thanx jpo!)
    + fix missing semicolon in Image/Info/
    + Image::Info::XPM and Image::Info::XBM: add -width and -height to new()
  * add POD for process_file() into SVG, Xbm and Xpm
  * a few additions to Panasonic MakerNote in EXIF parsing
  * add doc about EXIF being wholly incomplete and using Image::ExifTool
  * apply patch, tests and add test.tif from Ben Wheeler, Thanx!:
    + fix bug #7442 Infinite loop of errors in Image::Info::TIFF 
    + fix bug #3698 Broken BitsPerSample handling in TIFFs

2006-03-03 v1.18 Tels 61 tests
  * fix bug #6558: Image::Info 1.16 -> fails two tests (Thanx jpo!)
    + make string.t use strict, Test::More and simplify it
    + let string.t skip tests if Image::Xpm, Image::Xbm or XML::Simple
      are not installed (these would formerly silently fail)
    + Image::Info::XPM and Image::Info::XBM now handle in-memory files better
    + fix also pod_cov.t warnings (was "" vs "Image::Info")
  * reduce img/test.gif in size, it did eat up 1/3 of the entire dist size
  * reducing test.jpg with GIMP reveals a bug in EXIF parsing (not yet fixed)
  * MakerNote parsing:
    + add support for Panasonic cameras
    + for the following manufacturers we do not check the camera model, this
      gets all cameras, even yet unreleased ones to work:
      + Canon
      + Panasonic
      + Casio
      + Olympus
      + Fujifilm
    + UNDEFINED/ASCII strings from MakeNotes might have wrong length due to
      trailing \x00 chars, so we remove them and set the correct length
  * update one more URL for EXIF specs
  * imgdump uses Data::Dumper (not Data::Dump)
  * Install/build:
    + use Module::Install and bundle it, clean Makefile.PL up
    + add a compat Build.PL file
  * add a CREDITS file
  * add VERSION, and POD
  * various POD fixes and additions
  * various small code cleanups

2006-01-28 v1.17 Tels 48 tests
  * new maintainer: TELS
  * signed with my key
  * convert tests to Test::More
  * add pod.t and pod_cover.t
  * fix all POD errors
  * use strict in Makefile.PL and generate custom META.yml
  * don't include lib/Image/ - it is autogenerated anyway
  * html_dim() returns lowercase and properly quoted, for SVG/XHTML etc.,
    e.g. you get now 'width="900" height="800"'
  * fix bug #8136: update URL for EXIF standard
  * fix bug #8522 - dies at JPEGInterchangeFormatLngth (Thanx
  * fix also: EXIF says it is "JPEGInterchangeFormatLength", and not "...Lngth"
  * fix bug #5165: (duplicate of #8522)
  * fix bug #6018: FocalPlaneResolutionUnit decoded wrongly
  * fix bug #6083: add support for MakerNote for Nikon D70/D100 
  * fix bug #16161: netpbm images may have more than 8bit/channel

2004-01-07   Gisle Aas <>

    Release 1.16

    Support for Canon 300D/Digital Rebel.  Patch contributed
    by Karl Palsson <>.

    Cleaned up SVG/XPM/XBM implementations so that they
    don't try to override carp/croak in other modules.

2003-10-06   Gisle Aas <>

    Release 1.15

    Avoid IO::String dependency for perl-5.8.  It was supposed to
    work but did not.

2003-10-06   Gisle Aas <>

    Release 1.14

    Support TIFF/Exif GPS tags.

2003-10-06   Gisle Aas <>

    Release 1.13

    The module reported the SamplesPerPixel field as SamlesPerPixel
    for PPM files.  Patch contributed by Geoff Richards <>.

    Image::Info was not able to handle files smaller than 32 bytes.

    Support for Olympus C-700UZ and fix for the Olympus-JpegQual
    attribute contributed by Nick Hibma <>.

    Support for Canon makernote.  Contributed by John Cavanaugh

    IO::String v1.02 core dumps fixed by depending on v1.03.

2002-12-30   Gisle Aas <>

    Release 1.12

    Don't require IO::String for perl-5.8 as
    it has that feature built in.  Based on patch
    by Slaven Rezic <>.

    Looks like the TIFF support that was really
    functional because I forgot to add
    lib/Image/Info/ to the MANIFEST :-(

    Support for Exif 2.2 tags contributed by
    Stephane Bailliez <>.

    Support Olympus C4000Z MakerNote also from
    Stephane Bailliez.

2002-07-04   Gisle Aas <>

    Release 1.11

    More robust TIFF parser that keeps on going if some of the
    fields appears to be garbage.

    Workaround for "Samsung Digimax 200"'s brain-dead resolution

    Updated some tags based on the Exif 1.2 spec.

    Minor fix to exifdump example program so that it can actually
    dump the test.jpg

2002-05-28   Gisle Aas <>

    Release 1.10

    Support for "FUJIFILM FinePix6900ZOOM" and "Canon Canon EOS D60".
    The Fuji support was contributed by Cyril L. Pertsev <>
    and also included infrastructure for decoding of EXIF tags with
    UNKNOWN value types.

    Deal with signed TIFF values.

2001-12-14   Gisle Aas <>

    Release 1.09

    Use File::Spec in Makefile.PL to improve portability.
    Patch by Chris Nandor <>.

    Extended support for decoding of maker specific tags
    for Nikon E995 and Olympus 3040Z.

    TIFF support contributed by <>.

    Decoding of JPEG color components by <>.

2001-08-24   Gisle Aas <>

    Release 1.08

    The html_dim() function did not work at all.
    Patch by Hans-Georg <>.

    Removed ASCII image support.

    TIFF rational numbers are now blessed and use overloading to
    convert themselves to strings and numbers in a more sensible way.
    They are still references to arrays containing 2 numbers.

    GIF global color table reading fix.
    Patch by Tom Hargreaves <>.

    Support for zTXt chunks in PNG.  This only works when the Compress::Zlib
    module is available.  Contributed by Chip Marshall <>

    Updated Exif URIs in documentation

2001-04-10   Gisle Aas <>

    Release 1.07

    Image::Info::BMP should not use architecture-dependent
    unpack descriptors.  Fix by <>.

2001-03-26   Gisle Aas <>

    Release 1.06

    Avoid using sysread in Image::Info::BMP.  Avoids failures because
    of mixing of hi- and low-level file reading operations.

2001-03-24   Gisle Aas <>

    Release 1.05

    Exif MakerNote decoding implemented by Jay Soffian <>.
    His patch support the following camera models:

       NIKON E700
       NIKON E800
       NIKON E900
       NIKON E900S
       NIKON E910
       NIKON E950
       NIKON E880
       NIKON E990
       FUJIFILM FinePix4900ZOOM
       FUJIFILM FinePix40i
       FUJIFILM FinePix4700 ZOOM
       FUJIFILM FinePixS1Pro
       CASIO QV-3000EX
       Canon Canon EOS D30
       Canon Canon DIGITAL IXUS
       Canon Canon DIGITAL IXUS 300
       Canon Canon PowerShot G1
       Canon Canon PowerShot Pro90 IS
       Canon Canon PowerShot S10
       Canon Canon PowerShot S20

    Jay's exifdump program included.

2000-11-30   Gisle Aas <>

    Release 1.04

    Allow extra image_info() arguments to pass through to the
    image format handlers.  This make the histogram and
    color palette returns functional again.

    Distribute a copy of lib/Image/ so that
    finds it.

2000-11-13   Gisle Aas <>

    Release 1.03

    Support for even more image formats added by Jerrad Pierce:

       - Added support for ASCII and BMP/DIB/RLE

       - Palettes are only returned if requested (see documentation)

       - Added Luminance Histogram for ASCII, XBM, XPM

2000-11-10   Gisle Aas <>

    Release 1.02

    Avoid direct hardcoding of image file magic and doc by
    generating lib/Image/ in Makefile.PL

    XBM/XPM/SVG support contributed by
    Jerrad Pierce <>/<>

2000-10-31   Gisle Aas <>

    Release 1.01

    GIF parsing fixes from Ralf Steines <>:

      - GIF 'DisposalMethod' and 'UserInput' now show proper values.

      - GIF 'TransparencyIndex' now appears in the info hash.

      - GIF anims with local color tables don't fail anymore
        (table size calculation bug).

      - Added: GIFs marked as 87a which contain graphics control
        extension blocks don't fail anymore, GIF is parsed anyway
        but $info->{warn} contains 'GIF 89a extensions in 87a'.

2000-10-18   Gisle Aas <>

    Release 1.00

    IO::String is now a PREREQ module.

    Added PPM/PGM/PBM support

    Improved documentation.

    Standardized on how "resolution" is expressed.  The field in
    now mandatory.

    All comments are now found as "Comment" tag.

    Pick up data about thumbnails embedded in JPEG Exif files.

2000-08-24   Gisle Aas <>

    Release 0.05

    Passing a reference to a scalar as argument to img_info()
    indicates that this scalar contains raw image data.  If you
    want to use this feature, you need to install the IO::String
    module first.

2000-01-04   Gisle Aas <>

    Release 0.04

    Renaming of keys for things that are common across file
    formats.  Common things now use lowercase keys.

    Better support for JPEG JFXX chunks

    Better determination of color_type for JPEG

    Partial support for App14-Adobe chunks in JPEG

    Support sBIT chunks for PNG

1999-12-25   Gisle Aas <>

    Release 0.03

    Eliminated Image::TIFF::Exif.  The TIFF module now knows about
    the Exif tags by itself.

    Errors are returned as a hash too.

    Start on Image::Info POD

    Various tweaks to the reported info keys for JPEG/PNG/GIF.

    Support Netscape's Loop extension to GIF.

    Support ColorTable dump for GIF and PNG.

    Support FileMediaType/FileExt for all image formats.

    Report number of repeated chunks in PNG_Chunks values.

1999-12-22   Gisle Aas <>

    Release 0.02

    Removed external OO interface.  The main interface is now
    an plain function called image_info() that returns one or
    more hashes.  One hash per image found in the file.

    Exif/TIFF integer that are codes representing something else
    are now expaned.

    TIFF Rational values are reduced to plain integers when

    Added GIF support

    Added some test scripts

1999-12-19   Gisle Aas <>

    Release 0.01 (now Image-Info)

    New common framwork that can support many image formats.

    Added JPEG support

    Added PNG support

1999-12-14   Gisle Aas <>

    First try, released as Image-Exif-0.01