X-Git-Url: http://git.imager.perl.org/imager.git/blobdiff_plain/02323e699bdbadba473fe1488a8589551b78238f..f388cd372ce445f7839aefdb0a8e4ac9898f75ad:/Changes diff --git a/Changes b/Changes index 00d8a853..55e87d5a 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,245 @@ Imager release history. Older releases can be found in Changes.old +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. @@ -23,6 +263,11 @@ Imager release history. Older releases can be found in Changes.old 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 @@ -43,6 +288,11 @@ Bug fixes: 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 ===========