Revision history for Image::Info 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 bytes/sample. 2010-02-09 Slaven Rezic Release 1.30_53 Repacked because Module::Install 0.93 does not ignore xt tests. See https://rt.cpan.org/Ticket/Display.html?id=54450 2010-02-09 Slaven Rezic Release 1.30_52 Force using libxml's SAX parser. Fixed some PPM issues (e.g. incomplete header, numify width/height...) 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 @Image::Info::SVG::PREFER_MODULE 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 files) 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 Info.pm to dev/build.pl * include a pre-generated Info.pm 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/XPM.pm + 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 "Image::Info.pm" 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 * PPM.pm: 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/Info.pm - 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 srezic@cpan.org) * 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/TIFF.pm 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 values. 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 NIKON CORPORATION NIKON D1 OLYMPUS OPTICAL CO.,LTD C2000Z OLYMPUS OPTICAL CO.,LTD C2100UZ OLYMPUS OPTICAL CO.,LTD C2500L OLYMPUS OPTICAL CO.,LTD C3030Z OLYMPUS OPTICAL CO.,LTD E-10 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/Info.pm so that search.cpan.org 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/Info.pm 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 possible. 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