Imager release history. Older releases can be found in Changes.old
+Imager 1.005 - 16 Apr 2016
+============
+
+It's now been ten years since I switched to the new Changes file in
+release 0.55.
+
+ - revert the ivdformat probes, they don't work as is and trying to
+ fix them is too much work for now.
+
+Imager 1.004_004 - 15 Apr 2016
+================
+
+ - test that the ivdformat from Config is correct and look for a valid
+ one if it isn't.
+ For the strange Win32 failures.
+
+ - fix a copy and paste error in pod in samples/samp-form.cgi
+
+Imager 1.004_003 - 23 Mar 2016
+================
+
+ - add some extra error reporting to the I/O layers tests, this might
+ help catch a failure seen on Win32.
+ http://cpantesters.org/cpan/report/99781689-6bf5-1014-897a-75cb4eee1325
+
+Imager 1.004_002 - 20 Mar 2016
+================
+
+ - don't use the seek() method on opened() handles in
+ t/200-file/400-basic.t. In older versions of perl such handles are
+ only IO::Handle objects, not IO::File, and don't have a seek()
+ method.
+
+Imager 1.004_001 - 16 Mar 2016 (Birthday release - but not my birthday)
+================
+
+ - re-work the t/200-file/400-basic.t to correctly handle failures
+ It's custom ok() function didn't have a prototype and didn't use scalar().
+ This caused ok() to use the note instead of the value being tested when
+ the method called returned an empty list. For an example of the problem
+ caused see: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=812093
+
+ - remove some noise from when Imager tried to work with bugs in old
+ versions of giflib. I can't do much about the new bugs.
+
+ - the new autolevels filter (Imager 0.99) used an integer for the
+ sample scaling factor which caused the top output level to be too
+ low (depending on the scaling required.) It now uses a double.
+ https://rt.cpan.org/Ticket/Display.html?id=111871
+
+ - the new autolevels filter had off-by-one errors calculating the
+ minimum and maximum luminance from the histogram. This slightly
+ reduced the contrast of the output image.
+ https://rt.cpan.org/Ticket/Display.html?id=111871
+
+ - the new autolevels filter now uses a lookup table for 8-bit images
+ to avoid a floating point multiply for each sample.
+ https://rt.cpan.org/Ticket/Display.html?id=111871
+
+ - fixed several memory leaks detected by valgrind:
+
+ - addcolors() leaked the temporary array of colors supplied to the
+ internal API
+
+ - make_palette() leaked the temporary image array (not the images
+ themselves) passed to the internal API.
+
+ - combine()/i_combine() leaked its working row buffers
+
+ - getcolorusage()/i_get_anonymous_color_histo() leaked the sample
+ buffer if there were too many colors
+
+ - getcolorcount()/i_count_colors() leaked the sample buffer if
+ there were too many colors.
+
+ - the nearest_color filter (undocumented until I find a use for it)
+ leaked both temporaries passed to the API and internal buffers
+
+ - the internal process of upgrading a paletted image to a direct
+ color image would leak a context object reference count.
+
+ - a write failure when writing to a GIF file could leak memory.
+
+ - failing to write to a 1-bit/pixel ICO image could leak memory.
+
+ - Imager no longer deliberately leaks the context object from the
+ initial thread. This was done to ensure there was always a context
+ object available, but the code that needed that now handles the
+ lack correctly,
+
+ - fixed some uninitialized memory usage detected by valgrind:
+
+ - rotate()/i_rotate_exact()/i_rotate_exact_bg()/i_matrix_transform()/
+ i_matrix_transform_bg() didn't initialize a working color value
+ if there was zero pixel coverage.
+
+ - i_ft2_cp() didn't initialize the complete color when producing an
+ intermediate image. This caused uninitialized value usage when
+ logging the color.
+
+Imager 1.004 - 8 Nov 2015
+============
+
+ - Imager::Color::Table is now pre-loaded by the preload() method.
+ https://rt.cpan.org/Ticket/Display.html?id=104896
+
+ - fix an assertion triggered under perl 5.23.4.
+ Thanks to A. Sinan Unur for the report and the patch.
+
+ - Imager->new can now be used to read raw image files.
+ https://rt.cpan.org/Ticket/Display.html?id=106836
+ Thanks to Richard Kelsch for reporting this.
+
+ - deal with output changes from Pod::Spell
+ https://github.com/perl-pod/Pod-Spell/issues/21
+
+Imager 1.003 - 12 May 2015
+============
+
+ - update 1.002 release notes to include the center change for filled
+ circle drawing.
+
+ - flood_fill() would escape beyond a 4-connected space under some
+ circumstances.
+ Added many more flood_fill() tests.
+ https://rt.cpan.org/Ticket/Display.html?id=103786
+
+Imager 1.002 - 3 Apr 2015
+============
+
+ - drawing anti-aliased filled circles is now 10 to 50 times faster
+ depending on the size of the circle.
+ This also changed the center from being the center of the pixel to
+ being the top left of the pixel to match the filled arcs drawn by
+ arc().
+ https://rt.cpan.org/Ticket/Display.html?id=101682
+
+ - enhancements to polygon filling:
+
+ - added a mode parameter to control how overlapping regions behave
+
+ - added a polypolygon() method to fill more than one polygon at a
+ time
+
+ - polygon filling is now exposed through the API.
+
+ - added colormodel(), alphachannel() and colorchannels() methods.
+ These were added for two reasons:
+
+ - a future version of Imager may allow the number of channels in
+ an image to not directly represent the color model of an image.
+ eg. a greyscale TIFF image with multiple alpha channels.
+
+ - a future version of Imager may allow an image to be read without
+ translation, for example a TIFF file that contains measurements
+ from an instrument. Currently Imager transforms the samples into
+ the range 0.0 ... 1.0 which may means the user has to translates
+ the value back.
+
+ An untranslated image would be unusable as image data, so
+ colormodel() would return "unknown" in this case.
+
+ Similarly a CMYK image might be returned as an "unknown" color
+ model image, if the caller chooses to disable translation to
+ RGB.
+
+Imager 1.001 - 2 Jan 2015
+============
+
+ - both Imager and perl 5.21.3 define my_strerror(), prevent a conflict
+ Thanks to Slaven Rezic for the report and the patch.
+ https://rt.cpan.org/Public/Bug/Display.html?id=98234
+
+ - GIF: clean-up a test file if the test for the giflib 4.2.0 file
+ version bug fails.
+
+ - fix Imager::Matrix2d::rotate()'s centre point handling
+ https://rt.cpan.org/Public/Bug/Display.html?id=99959
+
+ - ICO: don't apply the icon mask to images with an alpha channel by
+ default
+ https://rt.cpan.org/Public/Bug/Display.html?id=99507
+
+ - make verbose probing output more verbose
+
+ - use Imager::Probe to probe for freetype 1.x
+ https://rt.cpan.org/Ticket/Display.html?id=100502
+
+ - The --enable and --disable parameters to the top-level Makefile.PL
+ work again.
+
+ - update the bundled/modified Devel::CheckLib to handle the gcc-4
+ symlink on Cygwin
+
+Imager 1.000 - 28 Jul 2014
+============
+
+There's nothing special about Imager 1.000, it's just another release.
+
+ - fix the skip check for the iolayer qr// buffer test
+
+ - improve error reporting for the iolayer test failing on a small
+ number of Win32 CPAN testers
+
+Imager 0.99_02 - 21 Jul 2014
+==============
+
+ - Imager::Filter::Mandelbrot (and dynfilt/mandelbrot.c) - initialize
+ the blue channel in the generated palette, and allow each color
+ component to be in the range 100..255 instead of just 100..254.
+ Thanks to Ralf Neubauer.
+ https://rt.cpan.org/Ticket/Display.html?id=97086
+
+ - revert "improved the XS for i_io_read() and i_io_raw_read()"
+ This caused problems with older perls and didn't provide much of a
+ performance improvement.
+
+ - support Inline 0.57 and later.
+ Inline 0.57 changed the "with" interface.
+ https://rt.cpan.org/Ticket/Display.html?id=97108
+
+ - don't define our own MAXINT macro, it conflicts with windows header
+ files and in a few places it was the wrong value to use anyway.
+ https://rt.cpan.org/Ticket/Display.html?id=96425
+
+Imager 0.99_01 - 29 Jun 2014
+==============
+
+ - GIF: add support for giflib 5.1.0, which added error code pointer
+ parameters to EGifCloseFile() and DGifCloseFile().
+ https://rt.cpan.org/Ticket/Display.html?id=96756
+
+ - GIF: avoid a double-free when do_write() fails.
+
+ - fix SV type probing to work on perl before 5.12. Broken in 0.99.
+ https://rt.cpan.org/Ticket/Display.html?id=96761
+
+ - PNG: skip the benign error test before libpng 1.6.0, since the
+ error we're testing didn't exist before 1.6.0.
+ https://rt.cpan.org/Ticket/Display.html?id=94717 (continued)
+
+Imager 0.99 - 25 Jun 2014
+===========
+
+ - Imager::IO->new_buffer() (and hence Imager->read()'s data
+ parameter) now accepts a reference to a scalar as well as just a
+ plain scalar.
+ https://rt.cpan.org/Ticket/Display.html?id=92785
+
+ - Imager::IO->new_buffer() now always makes a copy of the passed in
+ buffer to avoid problems with temporary objects used for the return
+ value of SvPVbyte().
+ https://rt.cpan.org/Ticket/Display.html?id=92785
+
+ - improved the XS for i_io_read() and i_io_raw_read()
+ https://rt.cpan.org/Ticket/Display.html?id=92738
+
+ - load plugins from absolute paths on Android
+ Thanks to Brian Fraser.
+ https://rt.cpan.org/Ticket/Display.html?id=93272
+
+ - added the jpeg_optimize parameter for writing JPEG files. This can
+ significantly reduce file sizes, but uses more memory and time.
+ https://rt.cpan.org/Ticket/Display.html?id=94292
+
+ - the autolevels filter now works on the luminosity of the image
+ rather then working per channel. The old autolevels filter is
+ still available as "autolevels_skew".
+ https://rt.cpan.org/Ticket/Display.html?id=94413
+
+ - Imager::File::PNG now supports libpng 1.6.10.
+ 1.6.10 changed CRC errors from benign errors to normal errors,
+ which broke the test which used CRC errors to check for benign
+ error support. Switched to using a 1-bit grey-scale image with a
+ palette to test for benign errors.
+ https://rt.cpan.org/Ticket/Display.html?id=94717
+
+Imager 0.98 - 3 Jan 2014
+===========
+
+Incompatible changes:
+
+ - the return value of setpixel() has changed.
+
+ Previously the return values for undrawable pixels vs caller errors
+ changed depending on whether you used the multiple pixel calling
+ mechanism, or the single pixel mechanism.
+
+ Now:
+
+ - for an invalid parameter, such as an unknown colour, or missing
+ parameter, an empty list (or undef in scalar context) is
+ returned, and errstr() is set,
+
+ - otherwise the number of pixels drawn is returned. If none of
+ the pixels could be drawn (they were all outside the image), "0
+ but true" is returned.
+
+ https://rt.cpan.org/Ticket/Display.html?id=87650
+
+Other changes:
+
+ - when drawing on an image with an alpha channel where the source
+ minimum is greater than zero, Imager would read from beyond the end
+ of a malloc() allocated buffer. In rare circumstances this could
+ lead to some of the source image not being written to the target
+ image, or possibly to a segmentation fault.
+ I don't believe this has any security concerns beyond that.
+
+ - if the first text drawn with Imager::Font::T1 is not anti-aliased,
+ text drawn would be nonsense. This would also read beyond the end
+ of a malloced buffer.
+
+ - non-AA text drawn with an Imager::Font::TT (Truetype 1) font would be
+ truncated early.
+ https://rt.cpan.org/Ticket/Display.html?id=88993
+
+ - Imager::Font::Wrap no longer requires the image parameter.
+ https://rt.cpan.org/Ticket/Display.html?id=87338
+
+ - a documentation typo fix in Imager::Transformations
+ Thanks to Adrian Yee.
+ https://rt.cpan.org/Ticket/Display.html?id=88598
+
+ - Image::Probe, Imager's internal module for probing library
+ locations now searches the directories specified by LD_RUN_PATH,
+ LD_LIBRARY_PATH, DYLD_LIBRARY_PATH and LIBRARY_PATH for libraries,
+ and the corresponing s/\blib$/include/ directories for header
+ files.
+ https://rt.cpan.org/Ticket/Display.html?id=86428
+
+Imager 0.97 - 15 Jul 2013
+===========
+
+No changes from 0.96_02.
+
+Imager 0.96_02 - 8 Jul 2013
+==============
+
+ - PNG: treat a version mismatch between headers and library as a
+ probe failure.
+ https://rt.cpan.org/Ticket/Display.html?id=86659
+
+ - PNG: the check for benign error support is more complex than a
+ simple library version check, check for the appropriate macro.
+ Thanks for Slaven Rezic for following up on my CPAN Testers result
+ queries.
+ https://rt.cpan.org/Ticket/Display.html?id=86659
+
+ - W32: add a missing head1 AUTHORS to the old Win32.pm
+ https://rt.cpan.org/Ticket/Display.html?id=86658
+
+Imager 0.96_01 - 1 Jul 2013
+==============
+
+ - TIFF: handle SampleFormat = 2 by translating the signed integer
+ values to unsigned by flipping their sign bits.
+
+ Handle SampleFormat = 3 where possible.
+
+ SampleFormat is ignored for paletted images.
+
+ Mixed SampleFormat are handled incorrectly, since libtiff returns
+ only the first SampleFormat value, and an image with both an alpha
+ channel and SampleFormat = 2 for color channels probably has a
+ different SampleFormat for the alpha channel.
+
+ https://rt.cpan.org/Ticket/Display.html?id=74540
+
+ - XS clean up:
+ https://rt.cpan.org/Ticket/Display.html?id=69243
+
+ - Imager::Color's rgba() method now returns its values as integers
+ instead of floating point. (IV instead of NV).
+
+ - The XS for i_map() and i_matrix_transform() now use the AV *
+ typemap instead of rolling their own.
+
+ - The XS for DSO_call() now uses the HV * typemap instead of
+ rolling it's own.
+
+ - The XS for i_poly_aa(), i_poly_aa_cfill(), i_transform() and
+ i_gradgen() now use a new T_AVARRAY typemap that greatly
+ simplifies the XS code.
+
+ - many other minor XS changes
+
+ - some XS code formatting
+
+ - TT (Freetype 1.x) and FT2 (Freetype 2.x) non-antialiased rendering
+ now renders in alpha-combining mode, to match antialiased output.
+ https://rt.cpan.org/Ticket/Display.html?id=73359
+
+ - add sample code and cookbook notes for drawing a blurred drop-shadow.
+
+ - add support for libpng 1.6, which changed the defaults for
+ reporting some types of error.
+ https://rt.cpan.org/Ticket/Display.html?id=85746
+
+ - FT2: use gsamp/psamp() to transfer pixels from the work image to
+ the output image instead of gpix/ppix.
+ https://rt.cpan.org/Ticket/Display.html?id=83478
+
+ - eliminate various GCC warnings, mostly initialized but otherwise
+ unused variables.
+
+Imager 0.96 - 19 May 2013
+===========
+
+ - rearrange Imager's test files.
+ https://rt.cpan.org/Ticket/Display.html?id=84596
+
+ - Imager::Probe::_gcc_lib_paths now forces C locale.
+ A sufficiently recent gcc prints localized keys for the search
+ paths, which avoids that localization.
+ https://rt.cpan.org/Ticket/Display.html?id=84963
+
+ - fix a pod error detected by Pod::Simple 3.27 and laterm and skip
+ pod tests unless AUTOMATED_TESTING or IMAGER_AUTHOR_TESTING is set
+ and true.
+ https://rt.cpan.org/Ticket/Display.html?id=85262
+ reported by Andreas König
+
+ - add a test for unclosed POD in C source, and fix the errors it
+ found.
+ https://rt.cpan.org/Ticket/Display.html?id=74875
+
+ - fix some spelling errors detected by the newer aspell in Debian
+ Wheezy.
+
+ - remove a trailing ' from lib/Imager/Font/Test.pm's POD
+ thanks to gregor herrmann <gregoa@debian.org>
+ https://rt.cpan.org/Ticket/Display.html?id=85413
+
+ - add a test for standard =head1 commands and fix the errors found
+
+Imager 0.95 - 19 Apr 2013
+===========
+
+ - handle the SVf_UTF8 flag correctly on magic strings passed to
+ Imager::IO's write() and raw_write() methods.
+ This may misbehave in perl 5.6.x since the UTF8 flag may not be
+ visible in the main SV after SvGETMAGIC().
+ https://rt.cpan.org/Ticket/Display.html?id=83438
+
+ - document that bounding_box() ignores the transformation matrix
+ supplied to tranform() for fonts.
+ https://rt.cpan.org/Ticket/Display.html?id=84106
+
+Imager 0.94_02 - 5 Apr 2013
+==============
+
+ - enable debug logging for the standard font tests
+
+ - skip the overloaded UTF-8 text output checks on 5.6.x and earlier,
+ due to a bug in that version of perl.
+
+ - don't test for read() failing on a write-only handle in 5.8.x and
+ earlier, this was fixed in change 862083f7e4 in perl.
+
+ - report the version of Inline found during testing (an attempt to
+ diagnose some intermittent failures.)
+
+Imager 0.94_01 - 2 Mar 2013
+==============
+
+ - NOTE: possibly backward incompatible:
+ support reading from/writing to perl filehandes that aren't raw
+ files.
+
+ This allows Imager's I/O to honour handles with layers such as
+ gzip, scalar file handles or tied file handles.
+
+ This is backward incompatible in that previous Imager would simply
+ use fileno() to retrieve the fd for the file and call write(2) etc
+ on it directly.
+ https://rt.cpan.org/Ticket/Display.html?id=78843
+
+ - moved most of README to lib/Imager/Install.pod which should make it
+ more accessible to the "web" generation, also significantly updated
+ and re-worked it.
+
+ - updated README's for the separately distributed modules to refer to
+ Imager::Install, and that they need -dev versions of packages
+ https://rt.cpan.org/Ticket/Display.html?id=81265
+
+ - the JPEG test code now reports the compile-time library version
+
+ - avoid a possible compiler optimization issue on CentOS 5.9 i386 by
+ rearranging (and mildly optimizing) some code.
+ https://rt.cpan.org/Ticket/Display.html?id=83212
+
+ - fix a POD error in Imager::Fill (detected on new Pod-Simple)
+ https://rt.cpan.org/Ticket/Display.html?id=83434
+
+ - fix a broken link to Graphics::Magick
+ https://rt.cpan.org/Ticket/Display.html?id=82743
+
+ - drawing text to a channel with FT2 would draw with random coverage
+ due to an uninitialized alpha channel.
+
+ - marked the function pointer underlying the mm_log() API with the
+ correct gcc magic and fixed the resulting warnings.
+
+ - fixed some other compiler warnings
+
+ - Imager::Font::W32 now properly reports text drawing errors
+ https://rt.cpan.org/Ticket/Display.html?id=70098
+
+ - handle the SVf_UTF8 flag correctly on magic (eg. overloaded)
+ strings passed as text to draw(), bounding_box(), has_chars(),
+ glyph_names() (where supported) in each of the font drivers.
+ This may misbehave in perl 5.6.x since the UTF8 flag may not be
+ visible in the main SV after SvGETMAGIC().
+ https://rt.cpan.org/Ticket/Display.html?id=83438 (partial)
+
+Imager 0.94 - 15 Dec 2012
+=========================
+
+Variations on some of these changes were included in development
+releases.
+
+ - improved thread safety
+ - the internal error stack and log file handle are now in a per-thread
+ context object
+ - JPEG now captures IPTC information in a thread-safe way
+ - avoid globals where possible for warning capture in libtiff
+ - use a mutex to avoid re-entering thread-unsafe giflib
+ - use a mutex to avoid re-entering thread-unsafe tifflib
+ - use a mutex to avoid re-entering thread-unsafe T1Lib
+ - use a library handle per thread for freetype 2.
+ - use an engine handle per thread for freetype 1.x.
+ - originally these changes broke ABI compatibility, this has been
+ restored.
+
+ - clarify the return value of getpixel();
+ https://rt.cpan.org/Ticket/Display.html?id=81198
+
+ - fixed a race condition in parallel testing for T1
+
+ - fixed a bug in handling yoff for untransformed image-based fills
+
+ - documentation improvements for Imager::Fill
+
+ - FT2: report the library version while testing.
+
+Imager 0.93 - 15 Oct 2012
+===========
+
+Bug fixes:
+
+ - previously a transparency enabled GIF write (the default) would
+ always use a GIF89a header even if none of the images were
+ transparent.
+
+ - previously the probe step for freetype-config would fail on cygwin
+
+ - catch an invalid matrix parameter to convert() instead of crashing
+ https://rt.cpan.org/Ticket/Display.html?id=79922
+
+ - remove the 16-bit/sample limitation from the documentation for
+ setsamples(), it hasn't applied for many releases.
+ https://rt.cpan.org/Ticket/Display.html?id=79989
+
+ - don't copy setsamples() data parameter, it may be a large scalar
+ https://rt.cpan.org/Ticket/Display.html?id=79990
+
+ - clean up .dSYM directories generated performing probes on OS X
+ Mountain Lion.
+
+ - pass the --verbose command-line option through to Imager::Probe in
+ sub-module's Makefile.PLs
+ https://rt.cpan.org/Ticket/Display.html?id=75878
+
+Enhancements:
+
+ - support for giflib 5.0. (5.0.1 and later)
+ https://rt.cpan.org/Ticket/Display.html?id=79029
+ The giflib API Imager uses doesn't have a mechanism to set the
+ header version in 5.0.0.
+
+ - update the GIF library probe code to check for the new giflib 5.0.1
+ EGifSetGifVersion() function, and to check for the giflib 4.2.0
+ uninitialized gif89 bug.
+ https://rt.cpan.org/Ticket/Display.html?id=79679
+ http://sourceforge.net/tracker/?func=detail&aid=3574283&group_id=102202&atid=631304
+
+ - avoid static variables when capturing IPTC data from JPEG files
+
+ - match Imager::Font;:T1's error message translations to those from
+ later versions of T1Lib.
+
+ - for libtiff versions that support extended warning handlers (3.8.0
+ or later), use them to avoid some global variables.
+
+ - note Image::ExifTool for better metadata support.
+ https://rt.cpan.org/Ticket/Display.html?id=79251
+
+Imager 0.92 - 14 Aug 2012
+===========
+
+ - giflib 4.2 eliminates the GIF_LIB_VERSION macro, handle that
+ correctly for both probing and runtime.
+ https://rt.cpan.org/Ticket/Display.html?id=77672
+
+ - allow building JPEG/imexif.c on C89 compilers.
+
+ - allow building GIF/imgif.c on C89 compilers.
+
+Imager 0.91 - 4 Jun 2012
+===========
+
+Bug fixes:
+
+ - The size of rotated images is no longer rounded up so aggressively.
+ Added rounding to the linear interpolation done for rotate() and
+ matrix_transform() for 1 and 3 channel 8-bit images.
+ Adjusted the two tranlate matrices used to build the final rotation
+ matrix to use the distance between the outlier pixels rather than
+ the pixel dimensions (ie. dimension-1).
+ With all of this the output of rotate(degrees => 270) on an 8-bit
+ image exactly matches the output of rotate(right => 270).
+ https://rt.cpan.org/Ticket/Display.html?id=77063
+
+Other changes:
+
+ - eliminate the old IIM_new(), IIM_DESTROY() names from Imager's
+ internals, those names only matter for the XS interface.
+
+ - improve error reporting when PERL_INITIALIZE_IMAGER_CALLBACKS finds
+ the API level compiled into a loadable module such as
+ Imager::File::GIF doesn't match that of Imager. Previously it
+ could be difficult to determine exactly which module was failing to
+ load.
+ https://rt.cpan.org/Ticket/Display.html?id=77173
+
+ - added Imager->check_file_limits() as an interface to the
+ i_int_check_image_file_limits() API.
+
+ - Imager->set_file_limits(reset => 1) now resets the limits to the
+ defaults rather than setting them all to unlimited.
+
+ - wrote a brief security note as Imager::Security
+ https://rt.cpan.org/Ticket/Display.html?id=68910
+
+Imager 0.90 - 30 Apr 2012
+===========
+
+Bug fixes:
+
+ - Imager::Test::is_imaged() attempted to process an "epsilon"
+ parameter but the prototype didn't allow for the extra parameter.
+ Corrected the prototype.
+
+ - when downconverting samples (eg. from floating point to 8 bit)
+ Imager now rounds the sample value rather than attempting to
+ allocate input values over output values equally. The old
+ behaviour had the probably surprising effect of converting a
+ floating point 2.1/255.0 into an 8-bit 3 rather than the expected
+ 2.
+ This may result in slightly different 8 or 16-bit output images.
+
+ - BI_BITFIELD BMP images were handled incorrectly, both in
+ incorrectly calculating the space required for the masks and in
+ processing the image data itself.
+ https://rt.cpan.org/Ticket/Display.html?id=76736
+
+ - some odd width BMP BI_RLE4 images use run lengths that run one off
+ the edge of the image. Imager now allows this, discarding the
+ extra column.
+
+ - odd length RLE4 runs in BMP images were decoded incorrectly.
+
+ - pkg-config could sometimes return a library that was in a directory
+ EU::MM / $Config{libpth} doesn't know about, but the compiler did.
+ If no -L is included in the pkg-config library information check if
+ EU::MM can find the library, and if not, search our configured
+ directories and insert that into the library flags.
+ https://rt.cpan.org/Ticket/Display.html?id=75869
+
+ - Imager::Probe can now probe for libraries with dependent libraries,
+ common for static linking, eg. libpng requires libz.
+ https://rt.cpan.org/Ticket/Display.html?id=74043
+
+ - libpng 1.5 specific probes were looking for libpng 1.4 filenames.
+
+ - added alternative probe configurations that try to link libz, to
+ handle a statically linked libpng.
+ https://rt.cpan.org/Ticket/Display.html?id=74043
+
+ - if a probe includes testcode, Imager::Probe now checks that code as
+ part of the process of checking each configuration rather than as a
+ post test of the found configuration. This allows alternate
+ configurations to be checked if a matching but non-working
+ configuration is found.
+ https://rt.cpan.org/Ticket/Display.html?id=74043
+
+Other changes:
+
+ - when reading or writing images via callbacks, the default callbacks
+ now push an error message indicating that a required callback was
+ called but not supplied.
+ https://rt.cpan.org/Ticket/Display.html?id=76782
+
+ - clarify which callbacks are required for reading and writing TIFF
+ images.
+
+ - improve logging for creation of callback I/O layers.
+
+ - a little more documentation for Imager::Probe.
+
+ - the i_get_file_background() and i_get_file_backgroundf() APIs now
+ return int to indicate whether the i_background tag was found.
+
+ - PNG rework
+ - improve error reporting
+ - add png_interlace, png_bits tags
+ - read paletted images as paletted images, including transparency
+ - read 1 bit greyscale images as a type suitable for other file
+ handlers to write as bilevel
+ - read 16 bit/sample PNG as 16-bit/sample Imager images
+ - write "bilevel" paletted images as 1 bit grayscale images
+ - write paletted images as paletted images
+ - write 16-bit (or higher)/sample images as 16-bit/sample PNG
+ images
+ - improved metadata support
+ https://rt.cpan.org/Ticket/Display.html?id=29268
+
+Imager 0.89 - 18 Mar 2012
+===========
+
+Bug fixes:
+
+ - getpixel(..., type => "float") and the API i_gpixf() have been
+ broken on paletted images since they were implemented.
+ https://rt.cpan.org/Ticket/Display.html?id=75258
+
+Other changes:
+
+ - links in the METHOD INDEX now point at the method documentation
+ rather than the heading you can find them under.
+ https://rt.cpan.org/Ticket/Display.html?id=71495
+
+ - Imager (and the bundled dynamic modules) no longer fallback to
+ using DynaLoader if loading via XSLoader fails.
+ For the bundled modules this could hide useful error messages.
+ https://rt.cpan.org/Ticket/Display.html?id=75560
+
+ - IM_DEBUG_MALLOC mymalloc() no longer sn?printfs() a string to a
+ buffer in the array of allocations, but just stores the filename
+ pointer and line number.
+ https://rt.cpan.org/Ticket/Display.html?id=70388
+
+Imager 0.88 - 22 Feb 2012
+===========
+
- describe how to build libgif etc on OS X in such a way as to be
compatible with a fat binary perl (such as the system perl), in
README.
- add some other imaging modules to SEE ALSO
https://rt.cpan.org/Ticket/Display.html?id=73906
+ - note that the generator of the apparently non-DFSG-free postscript
+ in MMOne.pfb is a Debian package.
+
+ - setsamples() is now a true complement to getsamples() - it can
+ write 8-bit or floating point samples from a scalar or array
+ reference. This adds i_psamp() and i_psampf() to the C level API.
+
+ - the XS interfaces to i_gsamp(), i_gsampf() and i_gsamp_bits() have
+ changed to make better use of the typemap, but these aren't part of
+ the perl level API anyway. There were no changes to the C level
+ interfaces to these functions.
+
+ - getpixel() and setpixel() now accept a mix of scalar and array
+ references for the x and y parameters, and unequal array lengths is
+ no longer an error.
+ https://rt.cpan.org/Ticket/Display.html?id=73697
+
Bug fixes:
- correctly calculate the size of a rotated image
rotate().
https://rt.cpan.org/Ticket/Display.html?id=69261
+ - Win32 text output is now done in normal combine mode, the alpha
+ component of the color is now significant.
+ https://rt.cpan.org/Ticket/Display.html?id=70014
+
+ - remove long unused gif case from read()
+ https://rt.cpan.org/Ticket/Display.html?id=69244 (partial)
+
+ - the getsamples() target parameter was being treated as a hashref
+ when it's meant to be an array reference.
+ https://rt.cpan.org/Ticket/Display.html?id=74882
+
+ - getpixel() and setpixel() now returns an empty list when invalid
+ parameters are supplied.
+ Invalid values for type now result in an error for getpixel().
+ https://rt.cpan.org/Ticket/Display.html?id=73697
+
Imager 0.87 - 03 Jan 2012
===========