X-Git-Url: http://git.imager.perl.org/imager.git/blobdiff_plain/b934971aa163ca9e40c88ab137e441bcaf4c9d36..62adede52b9074b0842981ab33e6942fc36eaa13:/Changes diff --git a/Changes b/Changes index 1ab3dd45..caf6e6da 100644 --- a/Changes +++ b/Changes @@ -1,8 +1,276 @@ Imager release history. Older releases can be found in Changes.old -Imager 0.86 - unreleased +Threads work + - mutex for gif + - mutex for tiff + + - 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 + + +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. + https://rt.cpan.org/Ticket/Display.html?id=73371 + + - update the change notes for 0.77_01 to indicate that libungif + support was removed. + + - 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 + https://rt.cpan.org/Ticket/Display.html?id=69261 + + - fix incorrect rounding of color values for matrix_transform() and + 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 +=========== + + - document the return value of the filter() method. + https://rt.cpan.org/Ticket/Display.html?id=72369 + + - document i_gsamp_bits() and i_psamp_bits(). + https://rt.cpan.org/Ticket/Display.html?id=68815 + + - properly increment the Imager::Matrix2d $VERSION. + + - actually include the Imager::Test tests in the dist + + - correctly read and write 256x256 pixel ICO files + https://rt.cpan.org/Ticket/Display.html?id=69599 + + - make the error message from read() or read_multi() when they can't + identify the file type match reality. + https://rt.cpan.org/Ticket/Display.html?id=72475 + + - read() now uses $FORMATGUESS if it can't determine the file type + based on the file header, to match read_multi(). + + - re-work and add tests for def_guess_type(). def_guess_type() no + longer returns any random file extension as the file type. + + - add gray4, gray16 and gray as presets for make_colors. + https://rt.cpan.org/Ticket/Display.html?id=67911 + + - add make_palette() method that produces a palette from one or more + images. + + - fix the Imager dependency for the separately distributed font + drivers. + https://rt.cpan.org/Ticket/Display.html?id=72643 + + - fix i_render_color() to properly draw in "normal" mode - ie. when + writing to a 1 or 3 channel image the second or fourth channel of + the source color was being ignored, it is now significant. + https://rt.cpan.org/Ticket/Display.html?id=71564 + +Imager 0.86 - 31 Oct 2011 =========== + - improve error reporting for W32 tests + +Imager 0.85_02 - 24 Oct 2011 +============== + Bug fixes: - eliminate unused i_gif_opts type (clean-up) @@ -50,6 +318,28 @@ Bug fixes: 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 + + - search a few more library directories, so EU::MM doesn't discard + them. Hopefully fixes: + https://rt.cpan.org/Ticket/Display.html?id=71643 + Imager 0.85_01 - 10 Oct 2011 ============== @@ -458,6 +748,8 @@ Imager 0.77_01 - 13 Sep 2010 preparation for separate distribution. https://rt.cpan.org/Ticket/Display.html?id=49616 (partial) + Note: this removed support for libungif from Imager. + - optimize filled box drawing (color, not fill) Bug fixes: