Imager release history. Older releases can be found in Changes.old
-Imager 0.82 - unreleased
+Imager 0.86 - unreleased
+===========
+
+Bug fixes:
+
+ - eliminate unused i_gif_opts type (clean-up)
+ https://rt.cpan.org/Ticket/Display.html?id=69245
+
+ - fix combine=0 fill color anti-aliasing on the double/sample path
+ https://rt.cpan.org/Ticket/Display.html?id=71309
+
+ - make default text color non-transparent
+ https://rt.cpan.org/Ticket/Display.html?id=71469
+
+ - apply the last of the Debian unforwarded spelling fixes
+ https://rt.cpan.org/Ticket/Display.html?id=70656
+
+ - the log() method used its message parameter as a C level format
+ string.
+ https://rt.cpan.org/Ticket/Display.html?id=71653
+
+ - provide our own STRLEN typemap entry for older perls.
+ https://rt.cpan.org/Ticket/Display.html?id=71641
+
+ - add extra ppport.h configuration to support older perls.
+
+ - depend on Scalar::Util, since we use it and older perls don't have
+ it.
+
+ - add overloaded eq to Imager::Matrix2d, since older perls don't seem
+ to synthesize it from overloaded "".
+
+ - use T1_StrError() for error messages on modern libt1
+ https://rt.cpan.org/Ticket/Display.html?id=69879
+
+ - actually load the font rather than just adding it to the catalog on
+ creation.
+
+ - Imager::Font->new now produces better error messages for the T1
+ engine.
+
+ - the font has_chars() method now returns perl's true and false
+ values in list context rather than integers, which should be more
+ efficient.
+ https://rt.cpan.org/Ticket/Display.html?id=69158
+
+ - the btm data structure used by the flood_fill code is now
+ initialized more efficiently.
+ https://rt.cpan.org/Ticket/Display.html?id=68994
+
+ - updated the Thanks list in README
+ https://rt.cpan.org/Ticket/Display.html?id=71607
+
+ - check there's at least one coefficient for the convolution filter
+ https://rt.cpan.org/Ticket/Display.html?id=68993
+
+ - make the APIRef synopsis ordering consistent, older versions of
+ perl could order it differently.
+ https://rt.cpan.org/Ticket/Display.html?id=71675
+
+ - we rely on Config.pm's d_vsnprintf as to whether we use
+ vsnprintf/snprintf, which is defined in the Win32 Config.pm even
+ though it only has _ prefixed versions of these. Define our own
+ prefixed names on Win32.
+ https://rt.cpan.org/Ticket/Display.html?id=71642
+
+ - fix library detection with MSVC
+
+Imager 0.85_01 - 10 Oct 2011
+==============
+
+ - add simple tests for the Imager::Test test_image generators
+
+ - io_glue I/O buffering re-work:
+
+ - reorganize io_glue to do it's own buffering by default
+
+ - the unbuffered functions are available as i_io_raw_read() (or
+ raw_read() from perl) etc but are not recommended for typical
+ use.
+
+ - use the new i_io_peekn() when checking for file magic to avoid
+ seek, allowing Imager to detect the file type and read the file
+ from an unseekable stream (for formats that don't use random
+ access)
+
+ - added several new I/O layer API functions.
+
+ - fix the TGA performance problem, most noticably on Win32
+ https://rt.cpan.org/Ticket/Display.html?id=70037
+
+ - TIFF now uses wrapper functions of the correct types to avoid casts
+ https://rt.cpan.org/Ticket/Display.html?id=69912
+
+ - the callback IO object did its own buffering, controlled by the
+ maxbuffer parameter supplied to the read() and write() methods.
+ This buffering has been removed, to avoid redundancy with the
+ common io_glue buffering. This also avoids a bug in that code
+ which could rarely pass a zero length to the read callback and
+ then panic about the result.
+
+ - the callback IO object now tests the result of calling the close
+ callback, which should return true for success.
+
+ - the PNM reader did its own buffering. This buffering has been
+ removed to avoid redundancy with the common io_glue buffering.
+
+ - previously the read handlers for fd and callback I/O layers would
+ call the underlying interface (POSIX read or your supplied callback)
+ until it filled the buffer. It now only makes one call.
+
+ - added public constructors for I/O layer objects (see Imager::IO)
+
+ - all core file handlers now use the i_io_foo() wrappers to gain
+ access to buffered I/O rather than calling the I/O layer
+ callbacks directly.
+
+ - all core file handlers now check for error on close.
+
+ - Backward compatibility: if you hava custom file handlers, you can
+ use i_io_write() etc since they're available as macros in older
+ versions of Imager.
+
+ - eliminate the final remnants of io_glue_commit_types().
+
+ - bump IMAGER_API_VERSION, since the above may break assumptions.
+
+ - removed the long unused i_gen_reader() and i_gen_writer() utility
+ functions.
+
+Imager 0.85 - 29 Aug 2011
+===========
+
+The main changes in the release versus 0.84 are:
+
+ - on 64-bit systems, 64-bit types are consistently used for image
+ dimensions and co-ordinated, and for memory block sizes.
+
+ - handle IFD loops in TIFF files correctly. Previously this would
+ lead to an infinite loop.
+
+Bug fixes:
+
+ - fix the link in the getheight() entry in the method index
+
+Imager 0.84_02 - 22 Aug 2011
+==============
+
+Development release, this will become 0.85 if CPAN testers is
+favourable.
+
+Bug fixes:
+
+ - the image file limits set by set_file_limits() weren't being
+ checked when reading TIFF files.
+ https://rt.cpan.org/Ticket/Display.html?id=69915
+
+ - Provide more information about file format module load errors on a
+ failed image file read() or write().
+ https://rt.cpan.org/Ticket/Display.html?id=69194
+
+ - use TIFFReadDirectory() instead of TIFFSetDirectory() to iterate
+ through TIFF images, since it checks for IFD loops.
+ https://rt.cpan.org/Ticket/Display.html?id=69914
+
+ - don't leak memory when out of range palette indexes are supplied to
+ setscanline().
+ https://rt.cpan.org/Ticket/Display.html?id=69242
+
+ - require a later version of CPAN::Meta to ensure JSON::PP and
+ CPAN::Meta::YAML are available.
+ https://rt.cpan.org/Ticket/Display.html?id=69008
+
+ - hoist the per-line calculations for the flines implementations, and
+ modernize the tests a bit.
+ https://rt.cpan.org/Ticket/Display.html?id=70126
+
+ - detect snprintf()/vsnprintf() (cheat by using Config.pm) and use
+ them when available.
+ https://rt.cpan.org/Ticket/Display.html?id=69147
+
+ - if t1lib failed to reinitialize it would be left as marked
+ initialized.
+ https://rt.cpan.org/Ticket/Display.html?id=69877
+
+ - update the bundled (and still modified) Devel::CheckLib
+ https://rt.cpan.org/Ticket/Display.html?id=69170
+
+Imager 0.84_01 - 8 Aug 2011
+==============
+
+Development release as a sanity check for the types re-work.
+
+Massive types re-work:
+
+ - the type used internally for pixel co-ordinates and image sizes is
+ now 64-bit on 64-bit platforms (at least sane ones).
+
+ - size_t is now used consistently for memory block sizes.
+
+ - since this changes the binary interface, the Imager API version has
+ been incremented. Any module that uses the API will need to be
+ rebuilt. In most cases that will be enough, but calls to any APIs
+ that take a pointer to image sizes may need source changes.
+
+ - you should be able to create very large images on 64-bit systems,
+ if you have enough memory. Successfully created a 32768 x 49192 x
+ 3 channel image, filled with a tiled image and scaled it. The
+ unscaled image was also successfully saved to a JPEG.
+
+ - check the image size before attempting to write BMP, GIF, JPEG,
+ PNG, SGI, TGA, TIFF images.
+
+ - correctly handle reading TGA images over 32767 pixels wide or tall.
+
+Incidental changes:
+
+ - the gif_left and gif_top tags are now clamped to non-negative
+ values when writing a GIF image.
+
+ - removed dead callback read/write code
+
+The default maximum memory size when reading files is now 1G.
+
+Imager 0.84 - 20 Jun 2011
+===========
+
+ - Imager no longer inherits from Exporter (unless you're running an
+ old, old perl.
+
+ - Imager can now write progressive JPEGs (it could always read them).
+ https://rt.cpan.org/Ticket/Display.html?id=68691
+
+Bug fixes:
+
+ - re-work, document and test Imager's logging facility.
+ https://rt.cpan.org/Ticket/Display.html?id=65227
+
+ - fix META.yml testing and the generated META.yml
+ https://rt.cpan.org/Ticket/Display.html?id=65235
+
+ - test and add error reporting to to_*() family methods
+
+ - add to_rgb_double() method.
+ https://rt.cpan.org/Ticket/Display.html?id=65101
+
+ - Imager no longer exports anything by default
+ https://rt.cpan.org/Ticket/Display.html?id=65228
+
+ - convert colors to grayscale if the supplied (or generated) palette
+ contains only grays when performing error diffusion color
+ translation.
+ https://rt.cpan.org/Ticket/Display.html?id=68508
+
+ - writing a paletted image to GIF wouldn't always use the colors
+ supplied (or generated, eg. via make_colors => "mono"), which was
+ confusing at best.
+ https://rt.cpan.org/Ticket/Display.html?id=67912
+
+ - replace (imager|tony)@imager.perl.org in the doc, since I don't
+ plan to continue receiving mail at that address.
+ https://rt.cpan.org/Ticket/Display.html?id=68591
+
+Imager 0.83 - 21 May 2011
+===========
+
+Bug fixes:
+
+ - diag() the error message on failure for some TIFF tests that are
+ failing on a Solaris smoker.
+ http://www.cpantesters.org/cpan/report/6396db1e-8090-11e0-9682-112b785ebe45
+
+Imager 0.82_01 - 17 May 2011
+==============
+
+Dev release, in case the compose tests are too sensitive.
+
+Bug fixes:
+
+ - Imager::Font::T1 incorrectly checked for absolute filename under
+ Win32. Thanks to kmx for the report and fix.
+ https://rt.cpan.org/Ticket/Display.html?id=67963
+
+ - compose() with the target, source or mask position off the top or
+ left of the target image didn't clip the source image correctly.
+ https://rt.cpan.org/Ticket/Display.html?id=67220
+
+ - compose() now returns a useful error message on a non-positive
+ opacity.
+
+ - compose.im now at 100% test coverage. (As opposed to, umm, much,
+ much less.)
+
+Imager 0.82 - 14 Mar 2011
===========
Bug fixes: