X-Git-Url: http://git.imager.perl.org/imager.git/blobdiff_plain/a5919365e50016707e6a5ef3eeed0d9339a68e69..8cf479739a15b551f6afbb88e1c76c331e61142e:/Changes diff --git a/Changes b/Changes index 8087847b..c8d351d8 100644 --- a/Changes +++ b/Changes @@ -1,9 +1,764 @@ Imager release history. Older releases can be found in Changes.old + - the internal i_errors() function now correctly allocates the stack + space needed for its result. + https://rt.perl.org/rt3/Ticket/Display.html?id=131938 + + - t/100-base/020-color.t now uses Imager::Test's test functions + instead of its own. + https://rt.cpan.org/Ticket/Display.html?id=111993 + + - write_multi() now returns an error result (a false value) if called + with a non-(Imager image object). Previously it would typically + crash. + https://rt.cpan.org/Ticket/Display.html?id=117878 + + - improve the documentation of the jpegquality parameter when + writing JPEG files. + + - add code to mitigate CVE-2016-1238, Imager will no longer search the + default current directory entry in @INC when searching for file + format support modules. + +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 + 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 @@ -13,6 +768,11 @@ Imager release history. Older releases can be found in Changes.old 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 ===========