]> git.imager.perl.org - imager.git/blobdiff - Changes
more Changes
[imager.git] / Changes
diff --git a/Changes b/Changes
index 4f803cef8c45b54481391201d96f818b78cc64c9..6446ba4cd4d679723fb60d2cf9fd99ce32dcba3c 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,353 @@
 Imager release history.  Older releases can be found in Changes.old
 
+ - 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
+
+ - 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 <gregoa@debian.org>
+   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,
@@ -57,9 +405,11 @@ Imager 0.94_01 - 2 Mar 2013
  - 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)
+ - 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