X-Git-Url: http://git.imager.perl.org/imager.git/blobdiff_plain/e7ac18bd86172fcbf840b6a55bf89a39997eb6c0..b89f0fcd5991b0cc9da18a2cd9c3aff8601a1adc:/Changes diff --git a/Changes b/Changes index a75c7418..323be6d0 100644 --- a/Changes +++ b/Changes @@ -1,16 +1,441 @@ Imager release history. Older releases can be found in Changes.old -Imager 0.61 - unreleased +Imager 0.71_01 - 30 Nov 2009 +=========== + +Bug fixes: + + - use scanline oriented operations to flip images instead of pixel + operations + https://rt.cpan.org/Ticket/Display.html?id=39278 + + - use double/sample operations to flip large sample images instead of + 8-bit sample operations. + https://rt.cpan.org/Ticket/Display.html?id=39280 + + - fix POD nits + https://rt.cpan.org/Ticket/Display.html?id=51874 + + - prevent double-frees when someone creates Imager objects and then + creates a thread. Note: this just handles some simple cases, + Imager doesn't support perl threads, and isn't likely to. + https://rt.cpan.org/Ticket/Display.html?id=52268 + +Imager 0.71 - 16 Nov 2009 +=========== + + - add the opacity fill type - an adaptor that modifies the opacity of + another fill. + +Bug fixes: + + - the conv filter now enforces that the sum of the coefficients is + non-zero. Also, rather than skipping pixels off the edge off the + edge of the image, the closest edge pixel is used. Previously + dividing by the zero sum of coefficients could cause invalid + results or runtime exceptions. + Thanks to David Cantrell's Alpha-NetBSD CPAN test box for revealing + this bug. + +Imager 0.70 - 21 Sep 2009 +=========== + +Bug fixes: + + - release image row and comments memory on all error returns in gif + reader + + - handle zero length extensions, previously this would cause a null + pointer dereference + Thanks to Krzysztof Wojtaś for the test data and fix for this. + + - an integer division meant that preview scaling to below 1 pixel + wide or high (which isn't too useful anyway) was calculating using + NaNs on most platforms, and causing an exception on others. + Thanks to David Cantrell for producing a backtrace of the crash on + his Alpha-NetBSD CPAN test box which made it possible to track this + down. + +Imager 0.69 - 08 Sep 2009 +=========== + +Bug fixes: + + - broken test fix - was attempting to call a function skip_all, when + that should be a parameter to plan(). + + - briefly document apidocs.perl, the tool used to build + Imager::APIRef and make some minor enhancements + + - various minor documentation enhancements and fixes. + +Imager 0.68 - 07 Sep 2009 +=========== + + - Imager->new(file => $filename) and other similar incantations will + load the given file. + https://rt.cpan.org/Ticket/Display.html?id=48261 + +Bug fixes: + + - avoid using CHECK as a label in Imager::Test + http://nntp.x.perl.org/group/perl.cpan.testers/5220921 + + - re-work most image file test files that require a library into + separate library present/not present files to remove stupidly long + conditionals + + - don't treat rubthrough() outside the bounds of the target image as + an error. + http://nntp.x.perl.org/group/perl.cpan.testers/5185716 + +Imager 0.67_01 - 02 Sep 2009 +============== + +Bug fixes: + + - correct documentation of default of raw image interleave read + parameter + https://rt.cpan.org/Ticket/Display.html?id=42074 + + - add raw_ prefix to raw read parameters, though the original names + still work. + + - fail the read if an invalid raw_interleave parameter is supplied + + - warn if no interleave or raw_interleave parameter is supplied, + since the documented default was wrong, and incompatible with the + write format + + - for reading raw images, if raw_storechannels > raw_datachannels, + set the extra channels in the image to 0 + + - when probing for executables like freetype-config, search for .bat + and .cmd on MSWin32, as well as .exe. + https://rt.cpan.org/Ticket/Display.html?id=49275 + + - re-work the external libraries section of README: + - list Debian and Redhat package names for each library + - reformatting + - update URLs + + - use the new EU::MM META_MERGE facility instead of generating + META.yml from scratch + https://rt.cpan.org/Ticket/Display.html?id=47888 + + - use Devel::CheckLib (bundled, modified) to check which release of + libtiff is installed and reject 3.9.0 + http://bugzilla.maptools.org/show_bug.cgi?id=2088 + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=543079 + +Imager 0.67 - 12 Dec 2008 +=========== + +Bug fixes: + + - fix a packaging error + +Imager 0.66 - 12 Dec 2008 +=========== + + - 24-bit color .ICO/.CUR files can now be read. + +Bug fixes: + + - an optimization skipping 0 src alpha values could cause the + rubthrough() to read past the end of a buffer. + http://www.nntp.perl.org/group/perl.cpan.testers/2008/05/msg1509184.html + + - corrected a reference leak where writing GIFs would leak memory. + This could also happen calling to_paletted(). + Also documented the underlying long existing feature where the + colors parameter is filled with the generated color table and added + tests for it. + http://rt.cpan.org/Ticket/Display.html?id=41028 + + - write out the image size in bytes field of a BMP correctly. + http://rt.cpan.org/Ticket/Display.html?id=41406 + + - add limited tests for Imager::ExtUtils + + - make Imager::ExtUtils->includes use an absolute path, since + a relative path could cause failures using Inline::C. + http://rt.cpan.org/Ticket/Display.html?id=37353 + + - re-arrange the POD for Imager::Font::BBox: + - mark total_width(), pos_width(), end_offset() obsolete, since + they're mostly for backwards compatibility + - group width methods and height methods + https://rt.cpan.org/Ticket/Display.html?id=39999 + +Imager 0.65 - 20 May 2008 +=========== + +Bug fixes: + + - In some cases when an error occurs reading those parts of a JPEG + file after the image the scan-line buffer could be freed a second + time. In cases where the the error occured while reading the image + data it's possible that the buffer could have leaked. + Thanks to Gabriel Vasseur for reporting this and help in tracking + it down. + + - the gif_screen_height tag was overriding the screen width and being + ignored for the screen height when present. + https://rt.cpan.org/Public/Bug/Display.html?id=35568 + +Imager 0.64 - 23 April 2008 +=========== + +This is a bug fix release. This includes a fix for a possible +security issue. + +Bug fixes: + + - Possible security issue: The floating point sample path for image + based fills had a buffer overflow. This would overwrite the end of + a malloc()ed buffer with double precision floats. + http://rt.cpan.org/Ticket/Display.html?id=35324 + CVE-2008-1928 + + - check that the result of fileno($fh) is defined rather than simply + true when read() or write() is supplied with an fh parameter. + http://rt.cpan.org/Ticket/Display.html?id=35139 + + - i_scale_axis() wasn't checking the result of i_img_new_ch() + resulting in a SIGSEGV when attempting to scale an image to a size + too large to fit in memory. This is a NULL pointer access issue, + not a buffer overflow. + Added a check for the failure. + scale_calculate() (and hence scale()) will now fail if any of the + scale size parameters are a reference. + http://rt.cpan.org/Ticket/Display.html?id=35172 + + - Regression: filling a greyscale image with a hatch used the wrong + color channels from the supplied fg/bg colors. + https://rt.cpan.org/Ticket/Display.html?id=35278 + + - fixed a related problem for image fills. + +Imager 0.63 - 7 April 2008 +=========== + +This release primarily contains changes to improve ease of use - +rather than you having to convert images to the appropriate number of +channels, Imager handles it internally. How to handle drawing colors +and the default combine mode is a thornier problem left for some other +release. + + - the font libraries are now only initialized when needed. + http://rt.cpan.org/Ticket/Display.html?id=28825 + + - moved the imtoc.perl code into Imager::Preprocess + + - paste() and rubthrough() now adapt the source image data to the + destination, so you can now safely paste/rubthrough from greyscale + images to color images or back, or from alpha channel images to + noalpha channels or back. + https://rt.cpan.org/Ticket/Display.html?id=30908 + + - rubthrough() now falls back to pasting when the source doesn't have + an alpha channel. This effectively treats the source as having a + max alpha channel, the right thing to do. + http://rt.cpan.org/Ticket/Display.html?id=29944 + + - re-worked most of the area filling code to use a common set of + functions when filling. + Corrected normal combine mode. + Rewrote most of the combine modes to match the way the SVG draft + defines them with respect to a translucent source and destination. + Added tests for translucent source and destination. + Added tests to check 8-bit/sample and double/sample combines work + similarly. + https://rt.cpan.org/Ticket/Display.html?id=29879 + + - writing a 2 or 4 channel image to a JPEG file will now write that + image as if composited against a background, black by default, + overridable with the i_background tag/parameter. + https://rt.cpan.org/Ticket/Display.html?id=29876 + + - writing a 2 or 4 channel image to a PGM/PPM file will now write + that image as if composited against a background, black by default, + overridable with the i_background tag/parameter. + http://rt.cpan.org/Ticket/Display.html?id=30074 + + - writing a 2 or 4 channel image to a BMP file will now write that + image as if composited against a background, black by default, + overridable with the i_background tag/parameter. + http://rt.cpan.org/Ticket/Display.html?id=30075 + +Bug fixes: + + - Imager::Matrix2d->translate() now only requires one of the x or y + parameters. + http://rt.cpan.org/Ticket/Display.html?id=29937 + + - mixing qtype scaling now sets all channels of a pixel to zero if + the pixel has zero coverage (zero alpha). This should produce more + compressible output files. + http://rt.cpan.org/Ticket/Display.html?id=32324 + + - removed the pointless #! line from lib/Imager/Font/Wrap.pm + Noticed when I saw: + https://bugzilla.redhat.com/show_bug.cgi?id=166254 + I'm not changing the #! lines of the sample code, since it's sample + code, not intended for installation. + http://rt.cpan.org/Ticket/Display.html?id=33408 + + - some TGA images weren't being detected correctly as TGA images + https://rt.cpan.org/Ticket/Display.html?id=32925 + + - handling of the left-over bit for 16-bit/pixel TGA images has been + changed to match the behaviour of the GIMP. Previously the bit + being set was treated as an opaque pixel, but one user reported a + problem with loading such an image. I haven't been able to find any + tools beyond the GIMP that handle alpha-channel 16-bit TGAs, so + I'll match it's behaviour. See issue 114913 in the GIMP's + bugzilla. + http://rt.cpan.org/Ticket/Display.html?id=32926 + +Imager 0.62 - 10 December 2007 +=========== + + - Makefile.PL now expands ~/path supplied to --incpath or --libpath + to /path under your home directory. + http://rt.cpan.org/Ticket/Display.html?id=29484 + + - the old dynaload code used Mach API functions to load dynamic + libraries on Mac OS X. These APIs have been deprecated in OS X + 10.5 and were causing some build problems. + So henceforth Imager uses the dlopen() family of functions, and you + will need version 10.3 or later of OS X. + + - added the det() function to the transform2() engine. + added the sample quad_to_square.pl + Courtesy Richard Fairhurst. + http://rt.cpan.org/Ticket/Display.html?id=31244 + +Bug fixes: + + - samples/gifscale.pl sourced the base value for gif_top from + gif_left. + Thanks to Eleneldil G. Arilou for pointing this out. + + - t/t82inline.t no longer loads B at runtime, to work around a bug + in some 5.005_0[45] installations. + http://rt.cpan.org/Ticket/Display.html?id=30508 + + - work around Module::Depends::Intrusive bug #21229 + http://rt.cpan.org/Ticket/Display.html?id=30520 + + - the hardinvert filter no-longer inverts the alpha channel. + http://rt.cpan.org/Ticket/Display.html?id=30002 + + - the hardinvert filter now supports large samples + +Imager 0.61_02 - 28 November 2007 +============== + + - major TIFF support re-work + http://rt.cpan.org/Ticket/Display.html?id=20329 + + - added a C level image interface for accessing samples from 1-32 + bits, exposed this at the perl level in getsamples() + + - the conv filter now works at floating point precision for high bit + images + + - added is_bilevel method to test whether an image should be written as + a bilevel image if the image format supports it. + + - added -log-stderr as an Imager import list option + + - added some important types to Imager::APIRef + + - added test_image_double() to Imager::Test + +Bug fixes: + + - Imager::Fountain couldn't read GIMP gradient files with 10 or more + segments + + - the scale() method with qtype mixing now handles images with an + alpha channel correctly. + + - fixed a broken link from the "animated GIF" entry in the concept index. + Thanks to Slaven Rezic. + http://rt.cpan.org/Ticket/Display.html?id=30889 + + - on some perl's the infix expression parser test would fail due to + actions in the grammar returning false. Made sure all actions return + a true value. + Thanks to Richard Fairhurst for spending a lot of time in tracking + down this problem. + http://rt.cpan.org/Public/Bug/Display.html?id=29562 + +Imager 0.61 - 5 November 2007 =========== - added samples/gifscale.pl, which adjusts the screen size/position tags when scaling an animated gif http://rt.cpan.org/Ticket/Display.html?id=27591 +Bug fixes: + - correct handling of sz in matrix_transform() - this should allow perspective type transformations to work now. http://rt.cpan.org/Ticket/Display.html?id=29936 + - prevent a cast to integer warning on x64 builds in datatypes.c + also fixed some other type warnings + https://rt.cpan.org/Ticket/Display.html?id=30204 + + - some sub-directory tests depended on files produced by the parent + directory tests + http://rt.cpan.org/Ticket/Display.html?id=30203 + + - Imager::Font::Wrap doesn't correctly set savepos + thanks to Nikita Dedik and Eleneldil G. Arilou for reporting this. + http://rt.cpan.org/Ticket/Display.html?id=29771 + + - test 171 in t/t01introvert.t was failing on perls configured to + use long double. + http://rt.cpan.org/Ticket/Display.html?id=29413 + + - the code for the transform2() uminus operator was missing a break. + Added tests for better code coverage of the ops. + http://rt.cpan.org/Ticket/Display.html?id=29296 + + - the SGI RLE compression code could overflow its compression buffer + http://rt.cpan.org/Ticket/Display.html?id=30334 + + - the 32-bit output function used by the SGI code only handled values + under 0x10000. This was most noticable when writing large RLE images. + http://rt.cpan.org/Ticket/Display.html?id=30335 + + - validate chan_count for chans == NULL for each of the i_gsamp() + implementations. + http://rt.cpan.org/Ticket/Display.html?id=28985 + + - attempt to work around the test failure at + http://www.nntp.perl.org/group/perl.cpan.testers/2007/09/msg650810.html + http://rt.cpan.org/Ticket/Display.html?id=29562 + + - improve the error messages produced when attempting to read or write + an unknown image file format. + http://rt.cpan.org/Ticket/Display.html?id=30103 + + - improve the transform2() documentation + http://rt.cpan.org/Ticket/Display.html?id=29267 + + - correctly generate the author key in META.yml + http://rt.cpan.org/Ticket/Display.html?id=30377 + + - correctly blend a rotated (or matrix_transformed()) image when + performing interpolation in the presence of an alpha channel. + Also corrected the centring of the rotated image on the output + image. + Imager 0.60 - 30 August 2007 ===========