Imager 1.004_004
[imager.git] / Changes
1 Imager release history.  Older releases can be found in Changes.old
2
3 Imager 1.004_004 - 15 Apr 2016
4 ================
5
6  - test that the ivdformat from Config is correct and look for a valid
7    one if it isn't.
8    For the strange Win32 failures.
9
10  - fix a copy and paste error in pod in samples/samp-form.cgi
11
12 Imager 1.004_003 - 23 Mar 2016
13 ================
14
15  - add some extra error reporting to the I/O layers tests, this might
16    help catch a failure seen on Win32.
17    http://cpantesters.org/cpan/report/99781689-6bf5-1014-897a-75cb4eee1325
18
19 Imager 1.004_002 - 20 Mar 2016
20 ================
21
22  - don't use the seek() method on opened() handles in
23    t/200-file/400-basic.t.  In older versions of perl such handles are
24    only IO::Handle objects, not IO::File, and don't have a seek()
25    method.
26
27 Imager 1.004_001 - 16 Mar 2016 (Birthday release - but not my birthday)
28 ================
29
30  - re-work the t/200-file/400-basic.t to correctly handle failures
31    It's custom ok() function didn't have a prototype and didn't use scalar().
32    This caused ok() to use the note instead of the value being tested when
33    the method called returned an empty list.  For an example of the problem
34    caused see: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=812093
35
36  - remove some noise from when Imager tried to work with bugs in old
37    versions of giflib.  I can't do much about the new bugs.
38
39  - the new autolevels filter (Imager 0.99) used an integer for the
40    sample scaling factor which caused the top output level to be too
41    low (depending on the scaling required.)  It now uses a double.
42    https://rt.cpan.org/Ticket/Display.html?id=111871
43
44  - the new autolevels filter had off-by-one errors calculating the
45    minimum and maximum luminance from the histogram.  This slightly
46    reduced the contrast of the output image.
47    https://rt.cpan.org/Ticket/Display.html?id=111871
48
49  - the new autolevels filter now uses a lookup table for 8-bit images
50    to avoid a floating point multiply for each sample.
51    https://rt.cpan.org/Ticket/Display.html?id=111871
52
53  - fixed several memory leaks detected by valgrind:
54
55    - addcolors() leaked the temporary array of colors supplied to the
56      internal API
57
58    - make_palette() leaked the temporary image array (not the images
59      themselves) passed to the internal API.
60
61    - combine()/i_combine() leaked its working row buffers
62
63    - getcolorusage()/i_get_anonymous_color_histo() leaked the sample
64      buffer if there were too many colors
65
66    - getcolorcount()/i_count_colors() leaked the sample buffer if
67      there were too many colors.
68
69    - the nearest_color filter (undocumented until I find a use for it)
70      leaked both temporaries passed to the API and internal buffers
71
72    - the internal process of upgrading a paletted image to a direct
73      color image would leak a context object reference count.
74
75    - a write failure when writing to a GIF file could leak memory.
76
77    - failing to write to a 1-bit/pixel ICO image could leak memory.
78
79  - Imager no longer deliberately leaks the context object from the
80    initial thread.  This was done to ensure there was always a context
81    object available, but the code that needed that now handles the
82    lack correctly,
83
84  - fixed some uninitialized memory usage detected by valgrind:
85
86    - rotate()/i_rotate_exact()/i_rotate_exact_bg()/i_matrix_transform()/
87      i_matrix_transform_bg() didn't initialize a working color value
88      if there was zero pixel coverage.
89
90    - i_ft2_cp() didn't initialize the complete color when producing an
91      intermediate image.  This caused uninitialized value usage when
92      logging the color.
93
94 Imager 1.004 - 8 Nov 2015
95 ============
96
97  - Imager::Color::Table is now pre-loaded by the preload() method.
98    https://rt.cpan.org/Ticket/Display.html?id=104896
99
100  - fix an assertion triggered under perl 5.23.4.
101    Thanks to A. Sinan Unur for the report and the patch.
102
103  - Imager->new can now be used to read raw image files.
104    https://rt.cpan.org/Ticket/Display.html?id=106836
105    Thanks to Richard Kelsch for reporting this.
106
107  - deal with output changes from Pod::Spell
108    https://github.com/perl-pod/Pod-Spell/issues/21
109
110 Imager 1.003 - 12 May 2015
111 ============
112
113  - update 1.002 release notes to include the center change for filled
114    circle drawing.
115
116  - flood_fill() would escape beyond a 4-connected space under some
117    circumstances.
118    Added many more flood_fill() tests.
119    https://rt.cpan.org/Ticket/Display.html?id=103786
120
121 Imager 1.002 - 3 Apr 2015
122 ============
123
124  - drawing anti-aliased filled circles is now 10 to 50 times faster
125    depending on the size of the circle.
126    This also changed the center from being the center of the pixel to
127    being the top left of the pixel to match the filled arcs drawn by
128    arc().
129    https://rt.cpan.org/Ticket/Display.html?id=101682
130
131  - enhancements to polygon filling:
132
133    - added a mode parameter to control how overlapping regions behave
134
135    - added a polypolygon() method to fill more than one polygon at a
136      time
137
138    - polygon filling is now exposed through the API.
139
140  - added colormodel(), alphachannel() and colorchannels() methods.
141    These were added for two reasons:
142
143     - a future version of Imager may allow the number of channels in
144       an image to not directly represent the color model of an image.
145       eg. a greyscale TIFF image with multiple alpha channels.
146
147     - a future version of Imager may allow an image to be read without
148       translation, for example a TIFF file that contains measurements
149       from an instrument.  Currently Imager transforms the samples into
150       the range 0.0 ... 1.0 which may means the user has to translates
151       the value back.
152
153       An untranslated image would be unusable as image data, so
154       colormodel() would return "unknown" in this case.
155
156       Similarly a CMYK image might be returned as an "unknown" color
157       model image, if the caller chooses to disable translation to
158       RGB.
159
160 Imager 1.001 - 2 Jan 2015
161 ============
162
163  - both Imager and perl 5.21.3 define my_strerror(), prevent a conflict
164    Thanks to Slaven Rezic for the report and the patch.
165    https://rt.cpan.org/Public/Bug/Display.html?id=98234
166
167  - GIF: clean-up a test file if the test for the giflib 4.2.0 file
168    version bug fails.
169
170  - fix Imager::Matrix2d::rotate()'s centre point handling
171    https://rt.cpan.org/Public/Bug/Display.html?id=99959
172
173  - ICO: don't apply the icon mask to images with an alpha channel by
174    default
175    https://rt.cpan.org/Public/Bug/Display.html?id=99507
176
177  - make verbose probing output more verbose
178
179  - use Imager::Probe to probe for freetype 1.x
180    https://rt.cpan.org/Ticket/Display.html?id=100502
181
182  - The --enable and --disable parameters to the top-level Makefile.PL
183    work again.
184
185  - update the bundled/modified Devel::CheckLib to handle the gcc-4
186    symlink on Cygwin
187
188 Imager 1.000 - 28 Jul 2014
189 ============
190
191 There's nothing special about Imager 1.000, it's just another release.
192
193  - fix the skip check for the iolayer qr// buffer test
194
195  - improve error reporting for the iolayer test failing on a small
196    number of Win32 CPAN testers
197
198 Imager 0.99_02 - 21 Jul 2014
199 ==============
200
201  - Imager::Filter::Mandelbrot (and dynfilt/mandelbrot.c) - initialize
202    the blue channel in the generated palette, and allow each color
203    component to be in the range 100..255 instead of just 100..254.
204    Thanks to Ralf Neubauer.
205    https://rt.cpan.org/Ticket/Display.html?id=97086
206
207  - revert "improved the XS for i_io_read() and i_io_raw_read()"
208    This caused problems with older perls and didn't provide much of a
209    performance improvement.
210
211  - support Inline 0.57 and later.
212    Inline 0.57 changed the "with" interface.
213    https://rt.cpan.org/Ticket/Display.html?id=97108
214
215  - don't define our own MAXINT macro, it conflicts with windows header
216    files and in a few places it was the wrong value to use anyway.
217    https://rt.cpan.org/Ticket/Display.html?id=96425
218
219 Imager 0.99_01 - 29 Jun 2014
220 ==============
221
222  - GIF: add support for giflib 5.1.0, which added error code pointer
223    parameters to EGifCloseFile() and DGifCloseFile().
224    https://rt.cpan.org/Ticket/Display.html?id=96756
225
226  - GIF: avoid a double-free when do_write() fails.
227
228  - fix SV type probing to work on perl before 5.12.  Broken in 0.99.
229    https://rt.cpan.org/Ticket/Display.html?id=96761
230
231  - PNG: skip the benign error test before libpng 1.6.0, since the
232    error we're testing didn't exist before 1.6.0.
233    https://rt.cpan.org/Ticket/Display.html?id=94717 (continued)
234
235 Imager 0.99 - 25 Jun 2014
236 ===========
237
238  - Imager::IO->new_buffer() (and hence Imager->read()'s data
239    parameter) now accepts a reference to a scalar as well as just a
240    plain scalar.
241    https://rt.cpan.org/Ticket/Display.html?id=92785
242
243  - Imager::IO->new_buffer() now always makes a copy of the passed in
244    buffer to avoid problems with temporary objects used for the return
245    value of SvPVbyte().
246    https://rt.cpan.org/Ticket/Display.html?id=92785
247
248  - improved the XS for i_io_read() and i_io_raw_read()
249    https://rt.cpan.org/Ticket/Display.html?id=92738
250
251  - load plugins from absolute paths on Android
252    Thanks to Brian Fraser.
253    https://rt.cpan.org/Ticket/Display.html?id=93272
254
255  - added the jpeg_optimize parameter for writing JPEG files.  This can
256    significantly reduce file sizes, but uses more memory and time.
257    https://rt.cpan.org/Ticket/Display.html?id=94292
258
259  - the autolevels filter now works on the luminosity of the image
260    rather then working per channel.  The old autolevels filter is
261    still available as "autolevels_skew".
262    https://rt.cpan.org/Ticket/Display.html?id=94413
263
264  - Imager::File::PNG now supports libpng 1.6.10.
265    1.6.10 changed CRC errors from benign errors to normal errors,
266    which broke the test which used CRC errors to check for benign
267    error support.  Switched to using a 1-bit grey-scale image with a
268    palette to test for benign errors.
269    https://rt.cpan.org/Ticket/Display.html?id=94717
270
271 Imager 0.98 - 3 Jan 2014
272 ===========
273
274 Incompatible changes:
275
276  - the return value of setpixel() has changed.
277
278    Previously the return values for undrawable pixels vs caller errors
279    changed depending on whether you used the multiple pixel calling
280    mechanism, or the single pixel mechanism.
281
282    Now:
283
284     - for an invalid parameter, such as an unknown colour, or missing
285       parameter, an empty list (or undef in scalar context) is
286       returned, and errstr() is set,
287
288     - otherwise the number of pixels drawn is returned.  If none of
289       the pixels could be drawn (they were all outside the image), "0
290       but true" is returned.
291
292    https://rt.cpan.org/Ticket/Display.html?id=87650
293
294 Other changes:
295
296  - when drawing on an image with an alpha channel where the source
297    minimum is greater than zero, Imager would read from beyond the end
298    of a malloc() allocated buffer.  In rare circumstances this could
299    lead to some of the source image not being written to the target
300    image, or possibly to a segmentation fault.
301    I don't believe this has any security concerns beyond that.
302
303  - if the first text drawn with Imager::Font::T1 is not anti-aliased,
304    text drawn would be nonsense.  This would also read beyond the end
305    of a malloced buffer.
306
307  - non-AA text drawn with an Imager::Font::TT (Truetype 1) font would be
308    truncated early.
309    https://rt.cpan.org/Ticket/Display.html?id=88993
310
311  - Imager::Font::Wrap no longer requires the image parameter.
312    https://rt.cpan.org/Ticket/Display.html?id=87338
313
314  - a documentation typo fix in Imager::Transformations
315    Thanks to Adrian Yee.
316    https://rt.cpan.org/Ticket/Display.html?id=88598
317
318  - Image::Probe, Imager's internal module for probing library
319    locations now searches the directories specified by LD_RUN_PATH,
320    LD_LIBRARY_PATH, DYLD_LIBRARY_PATH and LIBRARY_PATH for libraries,
321    and the corresponing s/\blib$/include/ directories for header
322    files.
323    https://rt.cpan.org/Ticket/Display.html?id=86428
324
325 Imager 0.97 - 15 Jul 2013
326 ===========
327
328 No changes from 0.96_02.
329
330 Imager 0.96_02 - 8 Jul 2013
331 ==============
332
333  - PNG: treat a version mismatch between headers and library as a
334    probe failure.
335    https://rt.cpan.org/Ticket/Display.html?id=86659
336
337  - PNG: the check for benign error support is more complex than a
338    simple library version check, check for the appropriate macro.
339    Thanks for Slaven Rezic for following up on my CPAN Testers result
340    queries.
341    https://rt.cpan.org/Ticket/Display.html?id=86659
342
343  - W32: add a missing head1 AUTHORS to the old Win32.pm
344    https://rt.cpan.org/Ticket/Display.html?id=86658
345
346 Imager 0.96_01 - 1 Jul 2013
347 ==============
348
349  - TIFF: handle SampleFormat = 2 by translating the signed integer
350    values to unsigned by flipping their sign bits.
351
352    Handle SampleFormat = 3 where possible.
353
354    SampleFormat is ignored for paletted images.
355
356    Mixed SampleFormat are handled incorrectly, since libtiff returns
357    only the first SampleFormat value, and an image with both an alpha
358    channel and SampleFormat = 2 for color channels probably has a
359    different SampleFormat for the alpha channel.
360
361    https://rt.cpan.org/Ticket/Display.html?id=74540
362
363  - XS clean up:
364      https://rt.cpan.org/Ticket/Display.html?id=69243
365
366    - Imager::Color's rgba() method now returns its values as integers
367      instead of floating point. (IV instead of NV).
368
369    - The XS for i_map() and i_matrix_transform() now use the AV *
370      typemap instead of rolling their own.
371
372    - The XS for DSO_call() now uses the HV * typemap instead of
373      rolling it's own.
374
375    - The XS for i_poly_aa(), i_poly_aa_cfill(), i_transform() and
376      i_gradgen() now use a new T_AVARRAY typemap that greatly
377      simplifies the XS code.
378
379    - many other minor XS changes
380
381    - some XS code formatting
382
383  - TT (Freetype 1.x) and FT2 (Freetype 2.x) non-antialiased rendering
384    now renders in alpha-combining mode, to match antialiased output.
385    https://rt.cpan.org/Ticket/Display.html?id=73359
386
387  - add sample code and cookbook notes for drawing a blurred drop-shadow.
388
389  - add support for libpng 1.6, which changed the defaults for
390    reporting some types of error.
391    https://rt.cpan.org/Ticket/Display.html?id=85746
392
393  - FT2: use gsamp/psamp() to transfer pixels from the work image to
394    the output image instead of gpix/ppix.
395    https://rt.cpan.org/Ticket/Display.html?id=83478
396
397  - eliminate various GCC warnings, mostly initialized but otherwise
398    unused variables.
399
400 Imager 0.96 - 19 May 2013
401 ===========
402
403  - rearrange Imager's test files.
404    https://rt.cpan.org/Ticket/Display.html?id=84596
405
406  - Imager::Probe::_gcc_lib_paths now forces C locale.
407    A sufficiently recent gcc prints localized keys for the search
408    paths, which avoids that localization.
409    https://rt.cpan.org/Ticket/Display.html?id=84963
410
411  - fix a pod error detected by Pod::Simple 3.27 and laterm and skip
412    pod tests unless AUTOMATED_TESTING or IMAGER_AUTHOR_TESTING is set
413    and true.
414    https://rt.cpan.org/Ticket/Display.html?id=85262
415    reported by Andreas König
416
417  - add a test for unclosed POD in C source, and fix the errors it
418    found.
419    https://rt.cpan.org/Ticket/Display.html?id=74875
420
421  - fix some spelling errors detected by the newer aspell in Debian
422    Wheezy.
423
424  - remove a trailing ' from lib/Imager/Font/Test.pm's POD
425    thanks to gregor herrmann <gregoa@debian.org>
426    https://rt.cpan.org/Ticket/Display.html?id=85413
427
428  - add a test for standard =head1 commands and fix the errors found
429
430 Imager 0.95 - 19 Apr 2013
431 ===========
432
433  - handle the SVf_UTF8 flag correctly on magic strings passed to
434    Imager::IO's write() and raw_write() methods.
435    This may misbehave in perl 5.6.x since the UTF8 flag may not be
436    visible in the main SV after SvGETMAGIC().
437    https://rt.cpan.org/Ticket/Display.html?id=83438
438
439  - document that bounding_box() ignores the transformation matrix
440    supplied to tranform() for fonts.
441    https://rt.cpan.org/Ticket/Display.html?id=84106
442
443 Imager 0.94_02 - 5 Apr 2013
444 ==============
445
446  - enable debug logging for the standard font tests
447
448  - skip the overloaded UTF-8 text output checks on 5.6.x and earlier,
449    due to a bug in that version of perl.
450
451  - don't test for read() failing on a write-only handle in 5.8.x and
452    earlier, this was fixed in change 862083f7e4 in perl.
453
454  - report the version of Inline found during testing (an attempt to
455    diagnose some intermittent failures.)
456
457 Imager 0.94_01 - 2 Mar 2013
458 ==============
459
460  - NOTE: possibly backward incompatible:
461    support reading from/writing to perl filehandes that aren't raw
462    files.
463
464    This allows Imager's I/O to honour handles with layers such as
465    gzip, scalar file handles or tied file handles.
466
467    This is backward incompatible in that previous Imager would simply
468    use fileno() to retrieve the fd for the file and call write(2) etc
469    on it directly.
470    https://rt.cpan.org/Ticket/Display.html?id=78843
471
472  - moved most of README to lib/Imager/Install.pod which should make it
473    more accessible to the "web" generation, also significantly updated
474    and re-worked it.
475
476  - updated README's for the separately distributed modules to refer to
477    Imager::Install, and that they need -dev versions of packages
478    https://rt.cpan.org/Ticket/Display.html?id=81265
479
480  - the JPEG test code now reports the compile-time library version
481
482  - avoid a possible compiler optimization issue on CentOS 5.9 i386 by
483    rearranging (and mildly optimizing) some code.
484    https://rt.cpan.org/Ticket/Display.html?id=83212
485
486  - fix a POD error in Imager::Fill (detected on new Pod-Simple)
487    https://rt.cpan.org/Ticket/Display.html?id=83434
488
489  - fix a broken link to Graphics::Magick
490    https://rt.cpan.org/Ticket/Display.html?id=82743
491
492  - drawing text to a channel with FT2 would draw with random coverage
493    due to an uninitialized alpha channel.
494
495  - marked the function pointer underlying the mm_log() API with the
496    correct gcc magic and fixed the resulting warnings.
497
498  - fixed some other compiler warnings
499
500  - Imager::Font::W32 now properly reports text drawing errors
501    https://rt.cpan.org/Ticket/Display.html?id=70098
502
503  - handle the SVf_UTF8 flag correctly on magic (eg. overloaded)
504    strings passed as text to draw(), bounding_box(), has_chars(),
505    glyph_names() (where supported) in each of the font drivers.
506    This may misbehave in perl 5.6.x since the UTF8 flag may not be
507    visible in the main SV after SvGETMAGIC().
508    https://rt.cpan.org/Ticket/Display.html?id=83438 (partial)
509
510 Imager 0.94 - 15 Dec 2012
511 =========================
512
513 Variations on some of these changes were included in development
514 releases.
515
516  - improved thread safety
517    - the internal error stack and log file handle are now in a per-thread
518      context object
519    - JPEG now captures IPTC information in a thread-safe way
520    - avoid globals where possible for warning capture in libtiff
521    - use a mutex to avoid re-entering thread-unsafe giflib
522    - use a mutex to avoid re-entering thread-unsafe tifflib
523    - use a mutex to avoid re-entering thread-unsafe T1Lib
524    - use a library handle per thread for freetype 2.
525    - use an engine handle per thread for freetype 1.x.
526    - originally these changes broke ABI compatibility, this has been
527      restored.
528
529  - clarify the return value of getpixel();
530    https://rt.cpan.org/Ticket/Display.html?id=81198
531
532  - fixed a race condition in parallel testing for T1
533
534  - fixed a bug in handling yoff for untransformed image-based fills
535
536  - documentation improvements for Imager::Fill
537
538  - FT2: report the library version while testing.
539
540 Imager 0.93 - 15 Oct 2012
541 ===========
542
543 Bug fixes:
544
545  - previously a transparency enabled GIF write (the default) would
546    always use a GIF89a header even if none of the images were
547    transparent.
548
549  - previously the probe step for freetype-config would fail on cygwin
550
551  - catch an invalid matrix parameter to convert() instead of crashing
552    https://rt.cpan.org/Ticket/Display.html?id=79922
553
554  - remove the 16-bit/sample limitation from the documentation for
555    setsamples(), it hasn't applied for many releases.
556    https://rt.cpan.org/Ticket/Display.html?id=79989
557
558  - don't copy setsamples() data parameter, it may be a large scalar
559    https://rt.cpan.org/Ticket/Display.html?id=79990
560
561  - clean up .dSYM directories generated performing probes on OS X
562    Mountain Lion.
563
564  - pass the --verbose command-line option through to Imager::Probe in
565    sub-module's Makefile.PLs
566    https://rt.cpan.org/Ticket/Display.html?id=75878
567
568 Enhancements:
569
570  - support for giflib 5.0. (5.0.1 and later)
571    https://rt.cpan.org/Ticket/Display.html?id=79029
572    The giflib API Imager uses doesn't have a mechanism to set the
573    header version in 5.0.0.
574
575  - update the GIF library probe code to check for the new giflib 5.0.1
576    EGifSetGifVersion() function, and to check for the giflib 4.2.0
577    uninitialized gif89 bug.
578    https://rt.cpan.org/Ticket/Display.html?id=79679
579    http://sourceforge.net/tracker/?func=detail&aid=3574283&group_id=102202&atid=631304
580
581  - avoid static variables when capturing IPTC data from JPEG files
582
583  - match Imager::Font;:T1's error message translations to those from
584    later versions of T1Lib.
585
586  - for libtiff versions that support extended warning handlers (3.8.0
587    or later), use them to avoid some global variables.
588
589  - note Image::ExifTool for better metadata support.
590    https://rt.cpan.org/Ticket/Display.html?id=79251
591
592 Imager 0.92 - 14 Aug 2012
593 ===========
594
595  - giflib 4.2 eliminates the GIF_LIB_VERSION macro, handle that
596    correctly for both probing and runtime.
597    https://rt.cpan.org/Ticket/Display.html?id=77672
598
599  - allow building JPEG/imexif.c on C89 compilers.
600
601  - allow building GIF/imgif.c on C89 compilers.
602
603 Imager 0.91 - 4 Jun 2012
604 ===========
605
606 Bug fixes:
607
608  - The size of rotated images is no longer rounded up so aggressively.
609    Added rounding to the linear interpolation done for rotate() and
610    matrix_transform() for 1 and 3 channel 8-bit images.
611    Adjusted the two tranlate matrices used to build the final rotation
612    matrix to use the distance between the outlier pixels rather than
613    the pixel dimensions (ie. dimension-1).
614    With all of this the output of rotate(degrees => 270) on an 8-bit
615    image exactly matches the output of rotate(right => 270).
616    https://rt.cpan.org/Ticket/Display.html?id=77063
617
618 Other changes:
619
620  - eliminate the old IIM_new(), IIM_DESTROY() names from Imager's
621    internals, those names only matter for the XS interface.
622
623  - improve error reporting when PERL_INITIALIZE_IMAGER_CALLBACKS finds
624    the API level compiled into a loadable module such as
625    Imager::File::GIF doesn't match that of Imager.  Previously it
626    could be difficult to determine exactly which module was failing to
627    load.
628    https://rt.cpan.org/Ticket/Display.html?id=77173
629
630  - added Imager->check_file_limits() as an interface to the
631    i_int_check_image_file_limits() API.
632
633  - Imager->set_file_limits(reset => 1) now resets the limits to the
634    defaults rather than setting them all to unlimited.
635
636  - wrote a brief security note as Imager::Security
637    https://rt.cpan.org/Ticket/Display.html?id=68910
638
639 Imager 0.90 - 30 Apr 2012
640 ===========
641
642 Bug fixes:
643
644  - Imager::Test::is_imaged() attempted to process an "epsilon"
645    parameter but the prototype didn't allow for the extra parameter.
646    Corrected the prototype.
647
648  - when downconverting samples (eg. from floating point to 8 bit)
649    Imager now rounds the sample value rather than attempting to
650    allocate input values over output values equally.  The old
651    behaviour had the probably surprising effect of converting a
652    floating point 2.1/255.0 into an 8-bit 3 rather than the expected
653    2.
654    This may result in slightly different 8 or 16-bit output images.
655
656  - BI_BITFIELD BMP images were handled incorrectly, both in
657    incorrectly calculating the space required for the masks and in
658    processing the image data itself.
659    https://rt.cpan.org/Ticket/Display.html?id=76736
660
661  - some odd width BMP BI_RLE4 images use run lengths that run one off
662    the edge of the image.  Imager now allows this, discarding the
663    extra column.
664
665  - odd length RLE4 runs in BMP images were decoded incorrectly.
666
667  - pkg-config could sometimes return a library that was in a directory
668    EU::MM / $Config{libpth} doesn't know about, but the compiler did.
669    If no -L is included in the pkg-config library information check if
670    EU::MM can find the library, and if not, search our configured
671    directories and insert that into the library flags.
672    https://rt.cpan.org/Ticket/Display.html?id=75869
673
674  - Imager::Probe can now probe for libraries with dependent libraries,
675    common for static linking, eg. libpng requires libz.
676    https://rt.cpan.org/Ticket/Display.html?id=74043
677
678  - libpng 1.5 specific probes were looking for libpng 1.4 filenames.
679
680  - added alternative probe configurations that try to link libz, to
681    handle a statically linked libpng.
682    https://rt.cpan.org/Ticket/Display.html?id=74043
683
684  - if a probe includes testcode, Imager::Probe now checks that code as
685    part of the process of checking each configuration rather than as a
686    post test of the found configuration.  This allows alternate
687    configurations to be checked if a matching but non-working
688    configuration is found.
689    https://rt.cpan.org/Ticket/Display.html?id=74043
690
691 Other changes:
692
693  - when reading or writing images via callbacks, the default callbacks
694    now push an error message indicating that a required callback was
695    called but not supplied.
696    https://rt.cpan.org/Ticket/Display.html?id=76782
697
698  - clarify which callbacks are required for reading and writing TIFF
699    images.
700
701  - improve logging for creation of callback I/O layers.
702
703  - a little more documentation for Imager::Probe.
704
705  - the i_get_file_background() and i_get_file_backgroundf() APIs now
706    return int to indicate whether the i_background tag was found.
707
708  - PNG rework
709    - improve error reporting
710    - add png_interlace, png_bits tags
711    - read paletted images as paletted images, including transparency
712    - read 1 bit greyscale images as a type suitable for other file
713      handlers to write as bilevel
714    - read 16 bit/sample PNG as 16-bit/sample Imager images
715    - write "bilevel" paletted images as 1 bit grayscale images
716    - write paletted images as paletted images
717    - write 16-bit (or higher)/sample images as 16-bit/sample PNG
718      images
719    - improved metadata support
720    https://rt.cpan.org/Ticket/Display.html?id=29268
721
722 Imager 0.89 - 18 Mar 2012
723 ===========
724
725 Bug fixes:
726
727  - getpixel(..., type => "float") and the API i_gpixf() have been
728    broken on paletted images since they were implemented.
729    https://rt.cpan.org/Ticket/Display.html?id=75258
730
731 Other changes:
732
733  - links in the METHOD INDEX now point at the method documentation
734    rather than the heading you can find them under.
735    https://rt.cpan.org/Ticket/Display.html?id=71495
736
737  - Imager (and the bundled dynamic modules) no longer fallback to
738    using DynaLoader if loading via XSLoader fails.
739    For the bundled modules this could hide useful error messages.
740    https://rt.cpan.org/Ticket/Display.html?id=75560
741
742  - IM_DEBUG_MALLOC mymalloc() no longer sn?printfs() a string to a
743    buffer in the array of allocations, but just stores the filename
744    pointer and line number.
745    https://rt.cpan.org/Ticket/Display.html?id=70388
746
747 Imager 0.88 - 22 Feb 2012
748 ===========
749
750  - describe how to build libgif etc on OS X in such a way as to be
751    compatible with a fat binary perl (such as the system perl), in
752    README.
753    https://rt.cpan.org/Ticket/Display.html?id=73371
754
755  - update the change notes for 0.77_01 to indicate that libungif
756    support was removed.
757
758  - add some other imaging modules to SEE ALSO
759    https://rt.cpan.org/Ticket/Display.html?id=73906
760
761  - note that the generator of the apparently non-DFSG-free postscript
762    in MMOne.pfb is a Debian package.
763
764  - setsamples() is now a true complement to getsamples() - it can
765    write 8-bit or floating point samples from a scalar or array
766    reference.  This adds i_psamp() and i_psampf() to the C level API.
767
768  - the XS interfaces to i_gsamp(), i_gsampf() and i_gsamp_bits() have
769    changed to make better use of the typemap, but these aren't part of
770    the perl level API anyway.  There were no changes to the C level
771    interfaces to these functions.
772
773  - getpixel() and setpixel() now accept a mix of scalar and array
774    references for the x and y parameters, and unequal array lengths is
775    no longer an error.
776    https://rt.cpan.org/Ticket/Display.html?id=73697
777
778 Bug fixes:
779
780  - correctly calculate the size of a rotated image
781    https://rt.cpan.org/Ticket/Display.html?id=69261
782
783  - fix incorrect rounding of color values for matrix_transform() and
784    rotate().
785    https://rt.cpan.org/Ticket/Display.html?id=69261
786
787  - Win32 text output is now done in normal combine mode, the alpha
788    component of the color is now significant.
789    https://rt.cpan.org/Ticket/Display.html?id=70014
790
791  - remove long unused gif case from read()
792    https://rt.cpan.org/Ticket/Display.html?id=69244 (partial)
793
794  - the getsamples() target parameter was being treated as a hashref
795    when it's meant to be an array reference.
796    https://rt.cpan.org/Ticket/Display.html?id=74882
797
798  - getpixel() and setpixel() now returns an empty list when invalid
799    parameters are supplied.
800    Invalid values for type now result in an error for getpixel().
801    https://rt.cpan.org/Ticket/Display.html?id=73697
802
803 Imager 0.87 - 03 Jan 2012
804 ===========
805
806  - document the return value of the filter() method.
807    https://rt.cpan.org/Ticket/Display.html?id=72369
808
809  - document i_gsamp_bits() and i_psamp_bits().
810    https://rt.cpan.org/Ticket/Display.html?id=68815
811
812  - properly increment the Imager::Matrix2d $VERSION.
813
814  - actually include the Imager::Test tests in the dist
815
816  - correctly read and write 256x256 pixel ICO files
817    https://rt.cpan.org/Ticket/Display.html?id=69599
818
819  - make the error message from read() or read_multi() when they can't
820    identify the file type match reality.
821    https://rt.cpan.org/Ticket/Display.html?id=72475
822
823  - read() now uses $FORMATGUESS if it can't determine the file type
824    based on the file header, to match read_multi().
825
826  - re-work and add tests for def_guess_type().  def_guess_type() no
827    longer returns any random file extension as the file type.
828
829  - add gray4, gray16 and gray as presets for make_colors.
830    https://rt.cpan.org/Ticket/Display.html?id=67911
831
832  - add make_palette() method that produces a palette from one or more
833    images.
834
835  - fix the Imager dependency for the separately distributed font
836    drivers.
837    https://rt.cpan.org/Ticket/Display.html?id=72643
838
839  - fix i_render_color() to properly draw in "normal" mode - ie. when
840    writing to a 1 or 3 channel image the second or fourth channel of
841    the source color was being ignored, it is now significant.
842    https://rt.cpan.org/Ticket/Display.html?id=71564
843
844 Imager 0.86 - 31 Oct 2011
845 ===========
846
847  - improve error reporting for W32 tests
848
849 Imager 0.85_02 - 24 Oct 2011
850 ==============
851
852 Bug fixes:
853
854  - eliminate unused i_gif_opts type (clean-up)
855    https://rt.cpan.org/Ticket/Display.html?id=69245
856
857  - fix combine=0 fill color anti-aliasing on the double/sample path
858    https://rt.cpan.org/Ticket/Display.html?id=71309
859
860  - make default text color non-transparent
861    https://rt.cpan.org/Ticket/Display.html?id=71469
862
863  - apply the last of the Debian unforwarded spelling fixes
864    https://rt.cpan.org/Ticket/Display.html?id=70656
865
866  - the log() method used its message parameter as a C level format
867    string.
868    https://rt.cpan.org/Ticket/Display.html?id=71653
869
870  - provide our own STRLEN typemap entry for older perls.
871    https://rt.cpan.org/Ticket/Display.html?id=71641
872
873  - add extra ppport.h configuration to support older perls.
874
875  - depend on Scalar::Util, since we use it and older perls don't have
876    it.
877
878  - add overloaded eq to Imager::Matrix2d, since older perls don't seem
879    to synthesize it from overloaded "".
880
881   - use T1_StrError() for error messages on modern libt1
882     https://rt.cpan.org/Ticket/Display.html?id=69879
883
884  - actually load the font rather than just adding it to the catalog on
885    creation.
886
887  - Imager::Font->new now produces better error messages for the T1
888    engine.
889
890  - the font has_chars() method now returns perl's true and false
891    values in list context rather than integers, which should be more
892    efficient.
893    https://rt.cpan.org/Ticket/Display.html?id=69158
894
895  - the btm data structure used by the flood_fill code is now
896    initialized more efficiently.
897    https://rt.cpan.org/Ticket/Display.html?id=68994
898
899  - updated the Thanks list in README
900    https://rt.cpan.org/Ticket/Display.html?id=71607
901
902  - check there's at least one coefficient for the convolution filter
903    https://rt.cpan.org/Ticket/Display.html?id=68993
904
905  - make the APIRef synopsis ordering consistent, older versions of
906    perl could order it differently.
907    https://rt.cpan.org/Ticket/Display.html?id=71675
908
909  - we rely on Config.pm's d_vsnprintf as to whether we use
910    vsnprintf/snprintf, which is defined in the Win32 Config.pm even
911    though it only has _ prefixed versions of these.  Define our own
912    prefixed names on Win32.
913    https://rt.cpan.org/Ticket/Display.html?id=71642
914
915  - fix library detection with MSVC
916
917  - search a few more library directories, so EU::MM doesn't discard
918    them.  Hopefully fixes:
919    https://rt.cpan.org/Ticket/Display.html?id=71643
920
921 Imager 0.85_01 - 10 Oct 2011
922 ==============
923
924  - add simple tests for the Imager::Test test_image generators
925
926  - io_glue I/O buffering re-work:
927
928    - reorganize io_glue to do it's own buffering by default
929
930    - the unbuffered functions are available as i_io_raw_read() (or
931      raw_read() from perl) etc but are not recommended for typical
932      use.
933
934    - use the new i_io_peekn() when checking for file magic to avoid
935      seek, allowing Imager to detect the file type and read the file
936      from an unseekable stream (for formats that don't use random
937      access)
938
939    - added several new I/O layer API functions.
940
941    - fix the TGA performance problem, most noticably on Win32
942      https://rt.cpan.org/Ticket/Display.html?id=70037
943
944    - TIFF now uses wrapper functions of the correct types to avoid casts
945      https://rt.cpan.org/Ticket/Display.html?id=69912
946
947    - the callback IO object did its own buffering, controlled by the
948      maxbuffer parameter supplied to the read() and write() methods.
949      This buffering has been removed, to avoid redundancy with the
950      common io_glue buffering.  This also avoids a bug in that code
951      which could rarely pass a zero length to the read callback and
952      then panic about the result.
953
954    - the callback IO object now tests the result of calling the close
955      callback, which should return true for success.
956
957    - the PNM reader did its own buffering.  This buffering has been
958      removed to avoid redundancy with the common io_glue buffering.
959
960    - previously the read handlers for fd and callback I/O layers would
961      call the underlying interface (POSIX read or your supplied callback)
962      until it filled the buffer.  It now only makes one call.
963
964    - added public constructors for I/O layer objects (see Imager::IO)
965
966    - all core file handlers now use the i_io_foo() wrappers to gain
967      access to buffered I/O rather than calling the I/O layer
968      callbacks directly.
969
970    - all core file handlers now check for error on close.
971
972    - Backward compatibility: if you hava custom file handlers, you can
973      use i_io_write() etc since they're available as macros in older
974      versions of Imager.
975
976    - eliminate the final remnants of io_glue_commit_types().
977
978    - bump IMAGER_API_VERSION, since the above may break assumptions.
979
980  - removed the long unused i_gen_reader() and i_gen_writer() utility
981    functions.
982
983 Imager 0.85 - 29 Aug 2011
984 ===========
985
986 The main changes in the release versus 0.84 are:
987
988  - on 64-bit systems, 64-bit types are consistently used for image
989    dimensions and co-ordinated, and for memory block sizes.
990
991  - handle IFD loops in TIFF files correctly.  Previously this would
992    lead to an infinite loop.
993
994 Bug fixes:
995
996  - fix the link in the getheight() entry in the method index
997
998 Imager 0.84_02 - 22 Aug 2011
999 ==============
1000
1001 Development release, this will become 0.85 if CPAN testers is
1002 favourable.
1003
1004 Bug fixes:
1005
1006  - the image file limits set by set_file_limits() weren't being
1007    checked when reading TIFF files.
1008    https://rt.cpan.org/Ticket/Display.html?id=69915
1009
1010  - Provide more information about file format module load errors on a
1011    failed image file read() or write().
1012    https://rt.cpan.org/Ticket/Display.html?id=69194
1013
1014  - use TIFFReadDirectory() instead of TIFFSetDirectory() to iterate
1015    through TIFF images, since it checks for IFD loops.
1016    https://rt.cpan.org/Ticket/Display.html?id=69914
1017
1018  - don't leak memory when out of range palette indexes are supplied to
1019    setscanline().
1020    https://rt.cpan.org/Ticket/Display.html?id=69242
1021
1022  - require a later version of CPAN::Meta to ensure JSON::PP and
1023    CPAN::Meta::YAML are available.
1024    https://rt.cpan.org/Ticket/Display.html?id=69008
1025
1026  - hoist the per-line calculations for the flines implementations, and
1027    modernize the tests a bit.
1028    https://rt.cpan.org/Ticket/Display.html?id=70126
1029
1030  - detect snprintf()/vsnprintf() (cheat by using Config.pm) and use
1031    them when available.
1032    https://rt.cpan.org/Ticket/Display.html?id=69147
1033
1034  - if t1lib failed to reinitialize it would be left as marked
1035    initialized.
1036    https://rt.cpan.org/Ticket/Display.html?id=69877
1037
1038  - update the bundled (and still modified) Devel::CheckLib
1039    https://rt.cpan.org/Ticket/Display.html?id=69170
1040
1041 Imager 0.84_01 - 8 Aug 2011
1042 ==============
1043
1044 Development release as a sanity check for the types re-work.
1045
1046 Massive types re-work:
1047
1048  - the type used internally for pixel co-ordinates and image sizes is
1049    now 64-bit on 64-bit platforms (at least sane ones).
1050
1051  - size_t is now used consistently for memory block sizes.
1052
1053  - since this changes the binary interface, the Imager API version has
1054    been incremented.  Any module that uses the API will need to be
1055    rebuilt.  In most cases that will be enough, but calls to any APIs
1056    that take a pointer to image sizes may need source changes.
1057
1058  - you should be able to create very large images on 64-bit systems,
1059    if you have enough memory.  Successfully created a 32768 x 49192 x
1060    3 channel image, filled with a tiled image and scaled it.  The
1061    unscaled image was also successfully saved to a JPEG.
1062
1063  - check the image size before attempting to write BMP, GIF, JPEG,
1064    PNG, SGI, TGA, TIFF images.
1065
1066  - correctly handle reading TGA images over 32767 pixels wide or tall.
1067
1068 Incidental changes:
1069
1070  - the gif_left and gif_top tags are now clamped to non-negative
1071    values when writing a GIF image.
1072
1073  - removed dead callback read/write code
1074
1075 The default maximum memory size when reading files is now 1G.
1076
1077 Imager 0.84 - 20 Jun 2011
1078 ===========
1079
1080  - Imager no longer inherits from Exporter (unless you're running an
1081    old, old perl.
1082
1083  - Imager can now write progressive JPEGs (it could always read them).
1084    https://rt.cpan.org/Ticket/Display.html?id=68691
1085
1086 Bug fixes:
1087
1088  - re-work, document and test Imager's logging facility.
1089    https://rt.cpan.org/Ticket/Display.html?id=65227
1090
1091  - fix META.yml testing and the generated META.yml
1092    https://rt.cpan.org/Ticket/Display.html?id=65235
1093
1094  - test and add error reporting to to_*() family methods
1095
1096  - add to_rgb_double() method.
1097    https://rt.cpan.org/Ticket/Display.html?id=65101
1098
1099  - Imager no longer exports anything by default
1100    https://rt.cpan.org/Ticket/Display.html?id=65228
1101
1102  - convert colors to grayscale if the supplied (or generated) palette
1103    contains only grays when performing error diffusion color
1104    translation.
1105    https://rt.cpan.org/Ticket/Display.html?id=68508
1106
1107  - writing a paletted image to GIF wouldn't always use the colors
1108    supplied (or generated, eg. via make_colors => "mono"), which was
1109    confusing at best.
1110    https://rt.cpan.org/Ticket/Display.html?id=67912
1111
1112  - replace (imager|tony)@imager.perl.org in the doc, since I don't
1113    plan to continue receiving mail at that address.
1114    https://rt.cpan.org/Ticket/Display.html?id=68591
1115
1116 Imager 0.83 - 21 May 2011
1117 ===========
1118
1119 Bug fixes:
1120
1121  - diag() the error message on failure for some TIFF tests that are
1122    failing on a Solaris smoker.
1123    http://www.cpantesters.org/cpan/report/6396db1e-8090-11e0-9682-112b785ebe45
1124
1125 Imager 0.82_01 - 17 May 2011
1126 ==============
1127
1128 Dev release, in case the compose tests are too sensitive.
1129
1130 Bug fixes:
1131
1132  - Imager::Font::T1 incorrectly checked for absolute filename under
1133    Win32.  Thanks to kmx for the report and fix.
1134    https://rt.cpan.org/Ticket/Display.html?id=67963
1135
1136  - compose() with the target, source or mask position off the top or
1137    left of the target image didn't clip the source image correctly.
1138    https://rt.cpan.org/Ticket/Display.html?id=67220
1139
1140  - compose() now returns a useful error message on a non-positive
1141    opacity.
1142
1143  - compose.im now at 100% test coverage. (As opposed to, umm, much,
1144    much less.)
1145
1146 Imager 0.82 - 14 Mar 2011
1147 ===========
1148
1149 Bug fixes:
1150
1151  - eliminate calls to i_has_format() from the test suite, since it's
1152    no longer a useful way to check for file format support.  Eliminate
1153    i_has_format() from the functions exposed via XS.
1154    https://rt.cpan.org/Ticket/Display.html?id=65863
1155
1156  - eliminate calls to note(), which isn't in the (very old) version of
1157    Test::More we have as a pre-requisite.  note() is modern enough
1158    that I don't feel a need to require a Test::More upgrade for it.
1159    https://rt.cpan.org/Ticket/Display.html?id=65864
1160
1161  - skip the threads tests on Test::More 2.00_*
1162    https://rt.cpan.org/Ticket/Display.html?id=65812
1163
1164  - add an (unshipped) test to check Imager's internal POD links
1165    https://rt.cpan.org/Ticket/Display.html?id=65749
1166
1167  - improve the library detection summary
1168    https://rt.cpan.org/Ticket/Display.html?id=9675
1169
1170  - increase the version of Imager::Font::Type1 so that upgrades don't
1171    downgrade the version in this file.
1172    https://rt.cpan.org/Ticket/Display.html?id=66250
1173
1174  - if we see an -rpath (or -R) option in $Config{lddlflags} supply
1175    that option for the directories that would normally go in
1176    LD_RUN_PATH.  Typically an explicit -rpath overrides LD_RUN_PATH.
1177    https://rt.cpan.org/Ticket/Display.html?id=65955
1178
1179 Imager 0.81 - 14 Feb 2011
1180 ===========
1181
1182  - added coverage tests for masked images (maskimg.c @100% test coverage)
1183
1184  - add hsv() method to Imager::Color
1185    Thanks to Leolo (Philip Gwyn)
1186    https://rt.cpan.org/Ticket/Display.html?id=65385
1187
1188  - split libt1 Type 1 font support into a sub-module
1189    https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
1190
1191  - add a preload() class method for use in forking servers, and to
1192    work around limitations in PAR.
1193    https://rt.cpan.org/Ticket/Display.html?id=65665
1194
1195 Bug fixes:
1196
1197  - paletted writes to a masked image are now masked correctly.
1198    Revealed by new coverage tests.
1199
1200  - update the filter plugin documentation.
1201    https://rt.cpan.org/Ticket/Display.html?id=56513
1202
1203  - add the matrix() method to Imager::Matrix2d to allow creation of a
1204    matrix with specified co-efficients.  You can now multiple an
1205    Imager::Matrix2d object by a 9 element array ref or a number.
1206    https://rt.cpan.org/Ticket/Display.html?id=29938
1207
1208  - really fix loading TTF fonts with FT2 when FT1 isn't available.
1209    Thanks to Leolo (Philip Gwyn)
1210    https://rt.cpan.org/Ticket/Display.html?id=65386
1211    https://rt.cpan.org/Ticket/Display.html?id=62855
1212
1213  - make sure each test script that needs testout/ creates it.
1214    https://rt.cpan.org/Ticket/Display.html?id=65088
1215
1216  - handle a slightly different warning from libtiff 4.x
1217    https://rt.cpan.org/Ticket/Display.html?id=65268
1218
1219  - the sat transform2() op returned an incorrect saturation.
1220    https://rt.cpan.org/Ticket/Display.html?id=65391
1221
1222 Imager 0.80 - 17 Jan 2011
1223 ===========
1224
1225  - added coverage tests for Imager::Fountain and Imager::Color::Float
1226
1227  - Imager is now maintained in git
1228    http://git.imager.perl.org/imager.git
1229    git://git.imager.perl.org/imager.git
1230
1231 Bug fixes:
1232
1233  - images with an translucent alpha channel were not scaled correctly
1234    by the default (qtype=normal) scaling method.
1235    https://rt.cpan.org/Public/Bug/Display.html?id=63922
1236
1237  - Imager::Color::Float now translates "#FFFFFF" to white instead of
1238    just a little darker.
1239
1240  - make the default color map build algorithm "mediancut".  This
1241    changes the default color map builder for writing GIFs back to what
1242    it was in 0.77, reverting a performance regression.
1243    https://rt.cpan.org/Ticket/Display.html?id=64785
1244
1245  - handle failure to create a masked image correctly
1246
1247 Imager 0.79 - 10 Dec 2010
1248 ===========
1249
1250  - add Imager::Test to the POD coverage tests and document the missing
1251    functions.
1252
1253  - the convert() method now optimizes the case where all output
1254    channels are either 0, sourced from a single input channel or 1.
1255    This significantly speeds up presets like "addalpha", "green".
1256    https://rt.cpan.org/Ticket/Display.html?id=51254
1257
1258  - add wiggle.pl sample, as suggested by Dan Oppenheim.
1259
1260  - add the combine() method to combine channels from multiple source
1261    images into a new image
1262    https://rt.cpan.org/Ticket/Display.html?id=11872
1263
1264 Bug fixes:
1265
1266  - treat the co-efficients for convert() as doubles instead of floats.
1267
1268  - If a higher (earlier) priority font handler failed to load, that
1269    would crash preventing loading of later font handlers.
1270    https://rt.cpan.org/Ticket/Display.html?id=62855
1271
1272  - parse defines from the options returned by pkg-config --cflags
1273    https://rt.cpan.org/Ticket/Display.html?id=63223
1274
1275  - a regen of the MANIFEST revealed that GIF and FT2 tests weren't
1276    included in the tarball.  They are now included.
1277
1278 Imager 0.78 - 4 Oct 2010
1279 ===========
1280
1281 Bug fixes:
1282
1283  - don't access deprecated members of the png_structp.
1284    https://rt.cpan.org/Ticket/Display.html?id=60242
1285
1286  - document that using color objects is faster than supplying colors
1287    by name, etc.
1288    https://rt.cpan.org/Ticket/Display.html?id=61047
1289
1290  - Imager::Probe now accepts array references for incpath and libpath.
1291    https://rt.cpan.org/Ticket/Display.html?id=60244
1292
1293 Imager 0.77_02 - 27 Sep 2010
1294 ==============
1295
1296  - moved Win32, FreeType 2 font support into sub-modules.
1297    https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
1298    Uses Imager::Probe now.
1299    https://rt.cpan.org/Public/Bug/Display.html?id=61328
1300
1301  - tested successfully with jpeg-8b
1302    https://rt.cpan.org/Ticket/Display.html?id=60221
1303
1304 Bug fixes:
1305
1306  - from _01: look for missing file support test files in the right
1307    places.
1308
1309  - flood_fill() wouldn't fill the right side of a single scan-line
1310    fill area.
1311    Thanks to Nicolas Roggli for reporting this.
1312
1313  - flood_fill wouldn't fill to the left edge of the image if the
1314    starting line didn't reach the left edge.
1315    Thanks to Nicolas Roggli for reporting this.
1316
1317 Imager 0.77_01 - 13 Sep 2010
1318 ==============
1319
1320  - add each library-directory/pkgconfig/ to the pkg-config search path
1321    in Imager::Probe.
1322    Thanks to Justin Davis.
1323    https://rt.cpan.org/Ticket/Display.html?id=60491
1324
1325  - moved GIF, TIFF, JPEG file handling code into sub-modules in
1326    preparation for separate distribution.
1327    https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
1328
1329    Note: this removed support for libungif from Imager.
1330
1331  - optimize filled box drawing (color, not fill)
1332
1333 Bug fixes:
1334
1335  - Imager::Probe was calling ExtUtils::Liblist to initialize
1336    LD_RUN_PATH supplying an undefined value rather than the found
1337    directory.  Thanks to Justin Davis.
1338    https://rt.cpan.org/Ticket/Display.html?id=60491
1339
1340  - only prepend ./ to font filenames when passing them to T1Lib and
1341    then only when it would use its search mechanisms.
1342    https://rt.cpan.org/Ticket/Display.html?id=60509
1343
1344  - fix the cache check for the X rgb.txt loader.  This is typically
1345    used for color translation on Unix-like systems, and the fix
1346    improves performance of supplying colors by name by about 80 times.
1347    Test code that managed 3400 10x10 pixel boxes/second sped up to
1348    25700 boxes/second.
1349
1350  - clarify that Imager doesn't write EXIF metadata to images.
1351    https://rt.cpan.org/Ticket/Display.html?id=60637
1352
1353  - Imager::Probe can now search subdirectories under its include path.
1354    Used by the PNG Makefile.PL to find headers and libraries when they
1355    aren't in the base directory, as in cygwin.
1356    https://rt.cpan.org/Ticket/Display.html?id=60635
1357
1358 Imager 0.77 - 11 Aug 2010
1359 ===========
1360
1361 I don't want Imager::File::PNG indexed as part of Imager, but forgot
1362 to update the META.yml before updating the version.
1363
1364  - don't index Imager::File::PNG as part of Imager
1365
1366  - add resources to META.yml
1367
1368 Imager 0.76 - not released
1369 ===========
1370
1371 Bug fixes:
1372
1373  - the align_string() method would ignore a string of "0" due to a
1374    mis-use of C< ||= >.
1375    Thanks to Maurice Height for reporting this.
1376    https://rt.cpan.org/Ticket/Display.html?id=60199
1377
1378 Imager 0.75_03 - 09 Aug 2010
1379 ==============
1380
1381 Bug fixes:
1382
1383  - read_types() and write_types() would include png when it wasn't
1384    available due to a problem with the %formats tie
1385
1386  - handle dependent libraries correctly (eg -lpng requiring -lz) in
1387    the code run phase of library probing.
1388
1389 Imager 0.75_02 - 07 Aug 2010
1390 ==============
1391
1392 Bug fixes:
1393
1394  - add file missing from MANIFEST, which was causing TIFF failures.
1395
1396 Imager 0.75_01 - 06 Aug 2010
1397 ==============
1398
1399 Test release for the new PNG probe.
1400
1401  - added the ability to read multiple-image PNM files.
1402    Note that unlike the pbm/pgm/ppm specification this accepts mixed
1403    format files and allows white space padding between files.
1404    Thanks to Philip Gwyn (Leolo) for this patch.
1405
1406  - moved the PNG file handling code into a sub-module in preparation
1407    for separate distribution.
1408    https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
1409    Also helps avoid complications from -I/-L compile/link options from
1410    other libraries.
1411
1412 Bugs:
1413
1414  - Imager->new(data => $data) didn't try to process image file data in
1415    $data
1416    https://rt.cpan.org/Ticket/Display.html?id=58761
1417
1418  - t/t50basicoo.t no longer depends on the other tests to generate its 
1419    input files.
1420    https://rt.cpan.org/Ticket/Display.html?id=9798
1421    Also, it wasn't testing pnm (pnm vs ppm mix-up)
1422
1423  - update the documentation of hardinvert to match the change in 0.62.
1424    https://rt.cpan.org/Ticket/Display.html?id=59785
1425
1426  - added hardinvertall filter which also inverts the alpha channel
1427    (sorry for the mess)
1428
1429  - when probing for TIFF, set LD_RUN_PATH just as the Makefile does so
1430    the probe can find the library for the test run.
1431    https://rt.cpan.org/Ticket/Display.html?id=57518
1432
1433 Imager 0.75 - 20 Jun 2010
1434 ===========
1435
1436  - use PERL_NO_GET_CONTEXT to slightly improve performance on threaded
1437    perls (not measured)
1438
1439 Bugs:
1440
1441  - an opacity fill based on a fountain fill would segfault when
1442    filling an 8-bit/sample image.
1443
1444  - merge thickline branch polygon fix
1445    https://rt.cpan.org/Ticket/Display.html?id=43518
1446
1447 Imager 0.74 - 7 May 2010
1448 ===========
1449
1450 Bug fixes:
1451
1452  - read_multi() didn't handle a missing file format library correctly,
1453    aborting on failing to call i_readgif_multi_wiol() or
1454    i_readtiff_multi_wiol().
1455
1456  - fix spelling errors patched by Debian
1457    http://svn.debian.org/viewsvn/pkg-perl/trunk/libimager-perl/debian/patches/spelling.patch?revision=54839&view=markup
1458
1459  - add an (unshipped) author test to spellcheck Imager's POD.
1460
1461  - update the TIFF file format documentation
1462    https://rt.cpan.org/Ticket/Display.html?id=56510
1463
1464  - lib/Imager/IO.pod was written almost 4 years ago but never shipped.
1465
1466 Imager 0.73 - 15 Mar 2010
1467 ===========
1468
1469  - implement outline circles, both anti-aliased and not
1470    https://rt.cpan.org/Ticket/Display.html?id=19755
1471
1472  - a combine => "none" fill to a 1 or 3 channel image would produce
1473    the incorrect colour.
1474
1475 Imager 0.72 - 09 Dec 2009
1476 ===========
1477
1478 Bump version for release, since 0.71_03 is stable with CPAN testers.
1479
1480 Imager 0.71_03 - 5 Dec 2009
1481 ==============
1482
1483  - further adjust the threads test so it only performs the tests on
1484    perls where it's expected to work, and only if the threads module
1485    can be loaded.
1486
1487 Imager 0.71_02 - 1 Dec 2009
1488 ==============
1489
1490  - adjust the way we load the threads module for the threads test so
1491    it works with non-threaded perls
1492
1493 Imager 0.71_01 - 30 Nov 2009
1494 ===========
1495
1496 Bug fixes:
1497
1498  - use scanline oriented operations to flip images instead of pixel
1499    operations
1500    https://rt.cpan.org/Ticket/Display.html?id=39278
1501
1502  - use double/sample operations to flip large sample images instead of
1503    8-bit sample operations.
1504    https://rt.cpan.org/Ticket/Display.html?id=39280
1505
1506  - fix POD nits
1507    https://rt.cpan.org/Ticket/Display.html?id=51874
1508
1509  - prevent double-frees when someone creates Imager objects and then
1510    creates a thread.  Note: this just handles some simple cases,
1511    Imager doesn't support perl threads, and isn't likely to.
1512    https://rt.cpan.org/Ticket/Display.html?id=52268
1513
1514 Imager 0.71 - 16 Nov 2009
1515 ===========
1516
1517  - add the opacity fill type - an adaptor that modifies the opacity of
1518    another fill.
1519
1520 Bug fixes:
1521
1522  - the conv filter now enforces that the sum of the coefficients is
1523    non-zero.  Also, rather than skipping pixels off the edge off the
1524    edge of the image, the closest edge pixel is used.  Previously
1525    dividing by the zero sum of coefficients could cause invalid
1526    results or runtime exceptions.
1527    Thanks to David Cantrell's Alpha-NetBSD CPAN test box for revealing
1528    this bug.
1529
1530 Imager 0.70 - 21 Sep 2009
1531 ===========
1532
1533 Bug fixes:
1534
1535  - release image row and comments memory on all error returns in gif
1536    reader
1537
1538  - handle zero length extensions, previously this would cause a null
1539    pointer dereference
1540    Thanks to Krzysztof Wojtaś for the test data and fix for this.
1541
1542  - an integer division meant that preview scaling to below 1 pixel
1543    wide or high (which isn't too useful anyway) was calculating using
1544    NaNs on most platforms, and causing an exception on others.
1545    Thanks to David Cantrell for producing a backtrace of the crash on
1546    his Alpha-NetBSD CPAN test box which made it possible to track this
1547    down.
1548
1549 Imager 0.69 - 08 Sep 2009
1550 ===========
1551
1552 Bug fixes:
1553
1554  - broken test fix - was attempting to call a function skip_all, when
1555    that should be a parameter to plan().
1556
1557  - briefly document apidocs.perl, the tool used to build
1558    Imager::APIRef and make some minor enhancements
1559
1560  - various minor documentation enhancements and fixes.
1561
1562 Imager 0.68 - 07 Sep 2009
1563 ===========
1564
1565  - Imager->new(file => $filename) and other similar incantations will
1566    load the given file.
1567    https://rt.cpan.org/Ticket/Display.html?id=48261
1568
1569 Bug fixes:
1570
1571  - avoid using CHECK as a label in Imager::Test
1572    http://nntp.x.perl.org/group/perl.cpan.testers/5220921
1573
1574  - re-work most image file test files that require a library into
1575    separate library present/not present files to remove stupidly long
1576    conditionals
1577
1578  - don't treat rubthrough() outside the bounds of the target image as
1579    an error.
1580    http://nntp.x.perl.org/group/perl.cpan.testers/5185716
1581
1582 Imager 0.67_01 - 02 Sep 2009
1583 ==============
1584
1585 Bug fixes:
1586
1587  - correct documentation of default of raw image interleave read
1588    parameter
1589    https://rt.cpan.org/Ticket/Display.html?id=42074
1590
1591  - add raw_ prefix to raw read parameters, though the original names
1592    still work.
1593
1594  - fail the read if an invalid raw_interleave parameter is supplied
1595
1596  - warn if no interleave or raw_interleave parameter is supplied,
1597    since the documented default was wrong, and incompatible with the
1598    write format
1599
1600  - for reading raw images, if raw_storechannels > raw_datachannels,
1601    set the extra channels in the image to 0
1602
1603  - when probing for executables like freetype-config, search for .bat
1604    and .cmd on MSWin32, as well as .exe.
1605    https://rt.cpan.org/Ticket/Display.html?id=49275
1606
1607  - re-work the external libraries section of README:
1608    - list Debian and Redhat package names for each library
1609    - reformatting
1610    - update URLs
1611
1612  - use the new EU::MM META_MERGE facility instead of generating
1613    META.yml from scratch
1614    https://rt.cpan.org/Ticket/Display.html?id=47888
1615
1616  - use Devel::CheckLib (bundled, modified) to check which release of
1617    libtiff is installed and reject 3.9.0
1618    http://bugzilla.maptools.org/show_bug.cgi?id=2088
1619    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=543079
1620
1621 Imager 0.67 - 12 Dec 2008
1622 ===========
1623
1624 Bug fixes:
1625
1626  - fix a packaging error
1627
1628 Imager 0.66 - 12 Dec 2008
1629 ===========
1630
1631  - 24-bit color .ICO/.CUR files can now be read.
1632
1633 Bug fixes:
1634
1635  - an optimization skipping 0 src alpha values could cause the
1636    rubthrough() to read past the end of a buffer.
1637    http://www.nntp.perl.org/group/perl.cpan.testers/2008/05/msg1509184.html
1638
1639  - corrected a reference leak where writing GIFs would leak memory.
1640    This could also happen calling to_paletted().
1641    Also documented the underlying long existing feature where the
1642    colors parameter is filled with the generated color table and added
1643    tests for it.
1644    http://rt.cpan.org/Ticket/Display.html?id=41028
1645
1646  - write out the image size in bytes field of a BMP correctly.
1647    http://rt.cpan.org/Ticket/Display.html?id=41406
1648
1649  - add limited tests for Imager::ExtUtils
1650
1651  - make Imager::ExtUtils->includes use an absolute path, since
1652    a relative path could cause failures using Inline::C.
1653    http://rt.cpan.org/Ticket/Display.html?id=37353
1654
1655  - re-arrange the POD for Imager::Font::BBox:
1656    - mark total_width(), pos_width(), end_offset() obsolete, since
1657      they're mostly for backwards compatibility
1658    - group width methods and height methods
1659    https://rt.cpan.org/Ticket/Display.html?id=39999
1660
1661 Imager 0.65 - 20 May 2008
1662 ===========
1663
1664 Bug fixes:
1665
1666  - In some cases when an error occurs reading those parts of a JPEG
1667    file after the image the scan-line buffer could be freed a second
1668    time.  In cases where the the error occured while reading the image
1669    data it's possible that the buffer could have leaked.
1670    Thanks to Gabriel Vasseur for reporting this and help in tracking
1671    it down.
1672
1673  - the gif_screen_height tag was overriding the screen width and being
1674    ignored for the screen height when present.
1675    https://rt.cpan.org/Public/Bug/Display.html?id=35568
1676
1677 Imager 0.64 - 23 April 2008
1678 ===========
1679
1680 This is a bug fix release.  This includes a fix for a possible
1681 security issue.
1682
1683 Bug fixes:
1684
1685  - Possible security issue: The floating point sample path for image
1686    based fills had a buffer overflow.  This would overwrite the end of
1687    a malloc()ed buffer with double precision floats.
1688    http://rt.cpan.org/Ticket/Display.html?id=35324
1689    CVE-2008-1928
1690
1691  - check that the result of fileno($fh) is defined rather than simply
1692    true when read() or write() is supplied with an fh parameter.
1693    http://rt.cpan.org/Ticket/Display.html?id=35139
1694
1695  - i_scale_axis() wasn't checking the result of i_img_new_ch()
1696    resulting in a SIGSEGV when attempting to scale an image to a size
1697    too large to fit in memory.  This is a NULL pointer access issue,
1698    not a buffer overflow.
1699    Added a check for the failure.
1700    scale_calculate() (and hence scale()) will now fail if any of the
1701    scale size parameters are a reference.
1702    http://rt.cpan.org/Ticket/Display.html?id=35172
1703
1704  - Regression: filling a greyscale image with a hatch used the wrong
1705    color channels from the supplied fg/bg colors.
1706    https://rt.cpan.org/Ticket/Display.html?id=35278
1707
1708  - fixed a related problem for image fills.
1709
1710 Imager 0.63 - 7 April 2008
1711 ===========
1712
1713 This release primarily contains changes to improve ease of use -
1714 rather than you having to convert images to the appropriate number of
1715 channels, Imager handles it internally.  How to handle drawing colors
1716 and the default combine mode is a thornier problem left for some other
1717 release.
1718
1719  - the font libraries are now only initialized when needed.
1720    http://rt.cpan.org/Ticket/Display.html?id=28825
1721
1722  - moved the imtoc.perl code into Imager::Preprocess
1723
1724  - paste() and rubthrough() now adapt the source image data to the
1725    destination, so you can now safely paste/rubthrough from greyscale
1726    images to color images or back, or from alpha channel images to
1727    noalpha channels or back.
1728    https://rt.cpan.org/Ticket/Display.html?id=30908
1729
1730  - rubthrough() now falls back to pasting when the source doesn't have
1731    an alpha channel.  This effectively treats the source as having a
1732    max alpha channel, the right thing to do.
1733    http://rt.cpan.org/Ticket/Display.html?id=29944
1734
1735  - re-worked most of the area filling code to use a common set of
1736    functions when filling.
1737    Corrected normal combine mode.
1738    Rewrote most of the combine modes to match the way the SVG draft
1739    defines them with respect to a translucent source and destination.
1740    Added tests for translucent source and destination.
1741    Added tests to check 8-bit/sample and double/sample combines work
1742    similarly.
1743    https://rt.cpan.org/Ticket/Display.html?id=29879
1744
1745  - writing a 2 or 4 channel image to a JPEG file will now write that
1746    image as if composited against a background, black by default,
1747    overridable with the i_background tag/parameter.
1748    https://rt.cpan.org/Ticket/Display.html?id=29876
1749
1750  - writing a 2 or 4 channel image to a PGM/PPM file will now write
1751    that image as if composited against a background, black by default,
1752    overridable with the i_background tag/parameter.
1753    http://rt.cpan.org/Ticket/Display.html?id=30074
1754
1755  - writing a 2 or 4 channel image to a BMP file will now write that
1756    image as if composited against a background, black by default,
1757    overridable with the i_background tag/parameter.
1758    http://rt.cpan.org/Ticket/Display.html?id=30075
1759
1760 Bug fixes:
1761
1762  - Imager::Matrix2d->translate() now only requires one of the x or y
1763    parameters.
1764    http://rt.cpan.org/Ticket/Display.html?id=29937
1765
1766  - mixing qtype scaling now sets all channels of a pixel to zero if
1767    the pixel has zero coverage (zero alpha).  This should produce more
1768    compressible output files.
1769    http://rt.cpan.org/Ticket/Display.html?id=32324
1770
1771  - removed the pointless #! line from lib/Imager/Font/Wrap.pm
1772    Noticed when I saw:
1773    https://bugzilla.redhat.com/show_bug.cgi?id=166254
1774    I'm not changing the #! lines of the sample code, since it's sample
1775    code, not intended for installation.
1776    http://rt.cpan.org/Ticket/Display.html?id=33408
1777
1778  - some TGA images weren't being detected correctly as TGA images
1779    https://rt.cpan.org/Ticket/Display.html?id=32925
1780
1781  - handling of the left-over bit for 16-bit/pixel TGA images has been
1782    changed to match the behaviour of the GIMP.  Previously the bit
1783    being set was treated as an opaque pixel, but one user reported a
1784    problem with loading such an image.  I haven't been able to find any
1785    tools beyond the GIMP that handle alpha-channel 16-bit TGAs, so
1786    I'll match it's behaviour.  See issue 114913 in the GIMP's
1787    bugzilla.
1788    http://rt.cpan.org/Ticket/Display.html?id=32926
1789
1790 Imager 0.62 - 10 December 2007
1791 ===========
1792
1793  - Makefile.PL now expands ~/path supplied to --incpath or --libpath
1794    to /path under your home directory.
1795    http://rt.cpan.org/Ticket/Display.html?id=29484
1796
1797  - the old dynaload code used Mach API functions to load dynamic
1798    libraries on Mac OS X.  These APIs have been deprecated in OS X
1799    10.5 and were causing some build problems.
1800    So henceforth Imager uses the dlopen() family of functions, and you 
1801    will need version 10.3 or later of OS X.
1802
1803  - added the det() function to the transform2() engine.
1804    added the sample quad_to_square.pl
1805    Courtesy Richard Fairhurst.
1806    http://rt.cpan.org/Ticket/Display.html?id=31244
1807
1808 Bug fixes:
1809
1810  - samples/gifscale.pl sourced the base value for gif_top from
1811    gif_left.
1812    Thanks to Eleneldil G. Arilou for pointing this out.
1813
1814  - t/t82inline.t no longer loads B at runtime, to work around a bug
1815    in some 5.005_0[45] installations.
1816    http://rt.cpan.org/Ticket/Display.html?id=30508
1817
1818  - work around Module::Depends::Intrusive bug #21229
1819    http://rt.cpan.org/Ticket/Display.html?id=30520
1820
1821  - the hardinvert filter no-longer inverts the alpha channel.
1822    http://rt.cpan.org/Ticket/Display.html?id=30002
1823
1824  - the hardinvert filter now supports large samples
1825
1826 Imager 0.61_02 - 28 November 2007
1827 ==============
1828
1829  - major TIFF support re-work
1830    http://rt.cpan.org/Ticket/Display.html?id=20329
1831
1832  - added a C level image interface for accessing samples from 1-32
1833    bits, exposed this at the perl level in getsamples()
1834
1835  - the conv filter now works at floating point precision for high bit
1836    images
1837
1838  - added is_bilevel method to test whether an image should be written as
1839    a bilevel image if the image format supports it.
1840
1841  - added -log-stderr as an Imager import list option
1842
1843  - added some important types to Imager::APIRef
1844
1845  - added test_image_double() to Imager::Test
1846
1847 Bug fixes:
1848
1849  - Imager::Fountain couldn't read GIMP gradient files with 10 or more
1850    segments
1851
1852  - the scale() method with qtype mixing now handles images with an
1853    alpha channel correctly.
1854
1855  - fixed a broken link from the "animated GIF" entry in the concept index.
1856    Thanks to Slaven Rezic.
1857    http://rt.cpan.org/Ticket/Display.html?id=30889
1858
1859  - on some perl's the infix expression parser test would fail due to
1860    actions in the grammar returning false.  Made sure all actions return
1861    a true value.
1862    Thanks to Richard Fairhurst for spending a lot of time in tracking
1863    down this problem.
1864    http://rt.cpan.org/Public/Bug/Display.html?id=29562
1865
1866 Imager 0.61 - 5 November 2007
1867 ===========
1868
1869  - added samples/gifscale.pl, which adjusts the screen size/position tags
1870    when scaling an animated gif
1871    http://rt.cpan.org/Ticket/Display.html?id=27591
1872
1873 Bug fixes:
1874
1875  - correct handling of sz in matrix_transform() - this should allow
1876    perspective type transformations to work now.
1877    http://rt.cpan.org/Ticket/Display.html?id=29936
1878
1879  - prevent a cast to integer warning on x64 builds in datatypes.c
1880    also fixed some other type warnings
1881    https://rt.cpan.org/Ticket/Display.html?id=30204
1882
1883  - some sub-directory tests depended on files produced by the parent
1884    directory tests
1885    http://rt.cpan.org/Ticket/Display.html?id=30203
1886
1887  - Imager::Font::Wrap doesn't correctly set savepos
1888    thanks to Nikita Dedik and Eleneldil G. Arilou for reporting this.
1889    http://rt.cpan.org/Ticket/Display.html?id=29771
1890
1891  - test 171 in t/t01introvert.t was failing on perls configured to
1892    use long double.
1893    http://rt.cpan.org/Ticket/Display.html?id=29413
1894
1895  - the code for the transform2() uminus operator was missing a break.
1896    Added tests for better code coverage of the ops.
1897    http://rt.cpan.org/Ticket/Display.html?id=29296
1898
1899  - the SGI RLE compression code could overflow its compression buffer
1900    http://rt.cpan.org/Ticket/Display.html?id=30334
1901
1902  - the 32-bit output function used by the SGI code only handled values
1903    under 0x10000.  This was most noticable when writing large RLE images.
1904    http://rt.cpan.org/Ticket/Display.html?id=30335
1905
1906  - validate chan_count for chans == NULL for each of the i_gsamp()
1907    implementations.
1908    http://rt.cpan.org/Ticket/Display.html?id=28985
1909
1910  - attempt to work around the test failure at 
1911    http://www.nntp.perl.org/group/perl.cpan.testers/2007/09/msg650810.html
1912    http://rt.cpan.org/Ticket/Display.html?id=29562
1913
1914  - improve the error messages produced when attempting to read or write
1915    an unknown image file format.
1916    http://rt.cpan.org/Ticket/Display.html?id=30103
1917
1918  - improve the transform2() documentation
1919    http://rt.cpan.org/Ticket/Display.html?id=29267
1920
1921  - correctly generate the author key in META.yml
1922    http://rt.cpan.org/Ticket/Display.html?id=30377
1923
1924  - correctly blend a rotated (or matrix_transformed()) image when
1925    performing interpolation in the presence of an alpha channel.
1926    Also corrected the centring of the rotated image on the output
1927    image.
1928
1929 Imager 0.60 - 30 August 2007
1930 ===========
1931
1932  - Finished/rewrote Arnar's old SGI RGB file format support, so Imager
1933    now has full SGI RGB image format, including RLE and 16-bit/sample
1934    images.
1935    https://rt.cpan.org/Ticket/Display.html?id=8666
1936
1937  - logging functions are now available in the API
1938
1939  - applied Gabriel Vasseur's patch
1940    added documentation, further tests, and support for greyscale images
1941    Obviously problems are my fault :)
1942    https://rt.cpan.org/Ticket/Display.html?id=28142
1943
1944  - the mask for ICO/CUR images is now applied as an alpha channel to
1945    the returned image.  For the old behaviour, supply ico_masked => 0
1946    to read() or read_multi().  This should be less confusing when
1947    using Imager as a general image processor.
1948    https://rt.cpan.org/Ticket/Display.html?id=29001
1949
1950 Bug fixes:
1951
1952  - in some cases it's possible for giflib/libungif to return color 
1953    indexes outside the range of colors defined by the image's palette.
1954    We now expand the palette to match the indexes used.
1955    Thanks to Gabriel Vasseur for reporting this.
1956
1957  - fixed various memory leaks that could occur when failing to read png,
1958    jpeg, bmp or tga files.
1959
1960  - to avoid confusion, channels not present in the image are returned as
1961    zero by getscanline().  This has no effect on the C level i_glin()
1962    and i_glinf() API functions which continue to not set the unused
1963    channels.
1964
1965  - the convert() method now returns an image of the same sample size as
1966    the source image.
1967    https://rt.cpan.org/Ticket/Display.html?id=28492
1968
1969  - remove repeated text in Imager::Files
1970    http://rt.cpan.org/Ticket/Display.html?id=27589
1971
1972  - be even more explicit that scale() and friends don't modify the source
1973    image, but return a new image.
1974    http://rt.cpan.org/Ticket/Display.html?id=28570
1975
1976  - improve the error message from errstr() when you try to load a font
1977    for which the driver hasn't been built in Imager.
1978    http://rt.cpan.org/Ticket/Display.html?id=27571
1979
1980  - transparency is now enabled by default when writing GIF images
1981    http://rt.cpan.org/Ticket/Display.html?id=27615
1982
1983  - Imager would not load on Windows 98
1984    http://rt.cpan.org/Ticket/Display.html?id=27653
1985
1986 Imager 0.59 - 14 June 2007
1987 ===========
1988
1989 Bug fixes:
1990
1991  - fixes a regression introduced by the fixes for RT 11972
1992    http://rt.cpan.org/Ticket/Display.html?id=27546
1993
1994  - cropping outside the image would return an Imager object with
1995    no low-level image object, instead of returning false.
1996    Fixed by: Philip Gwyn (Leolo)
1997    http://rt.cpan.org/Ticket/Display.html?id=27509
1998
1999 Imager 0.58 - 16 May 2007
2000 ===========
2001
2002 No significant changes from 0.57_01.
2003
2004 Imager 0.57_01 - 11 May 2007
2005 ==============
2006
2007  - added to_rgb16 to produce a 16-bit/sample version of an image
2008
2009  - improve freetype 1.x text output efficiency
2010
2011 Bug fixes:
2012
2013  - search another place for rgb.txt, and check all the places 
2014    Imager::Color checks when deciding whether to skip testing it
2015    http://rt.cpan.org/Ticket/Display.html?id=26064
2016
2017  - use a convolution kernel size based on the stddev rather than a
2018    fixed size when performing a gaussian blur
2019    http://rt.cpan.org/Ticket/Display.html?id=25645
2020
2021  - document the difference() method's mindist parameter, and debug it.
2022
2023  - put the Imager release number in the Inline::C generated code to
2024    regenerate Inline code when a new release of Imager is installed.
2025    http://rt.cpan.org/Ticket/Display.html?id=26278
2026
2027  - fix rendering on alpha channel images for the FreeType 1.x driver.
2028    http://rt.cpan.org/Ticket/Display.html?id=11972
2029
2030  - fix rendering on alpha channel images for the T1lib driver.
2031    http://rt.cpan.org/Ticket/Display.html?id=11972
2032
2033  - reworked library probing, we can now set more than one probe
2034    function for a library.  Disabled the default (non-freetype-config)
2035    library probe and added an extra probe function that searches for
2036    both ft2build.h and whatever it includes, and adds -I as needed.
2037    Hopefully this will fix build problems like
2038    http://www.nntp.perl.org/group/perl.cpan.testers/2007/05/msg472281.html
2039    http://rt.cpan.org/Ticket/Display.html?id=26086
2040
2041 Imager 0.57 - 30 Apr 2007
2042 ===========
2043
2044 This is a maintenence release fixing a security issue in Imager.
2045
2046  - CRITICAL: a specially crafted compressed BMP file can cause a buffer
2047    overflow in malloced memory.  There will be further discussion of
2048    this issue in the ticket below.
2049    http://rt.cpan.org/Ticket/Display.html?id=26811
2050    CVE-2007-2459  CVE-2007-2413
2051    The descriptions at cve.mitre.org varied in quality, please see the
2052    ticket at rt.cpan.org for a more accurate description of the issue.
2053
2054 Imager 0.56 - 1 Apr 2007
2055 ===========
2056
2057  - added support for reading 16-bit/sample PGM/PPM images
2058
2059  - added support for writing 16-bit/sample PGM/PPM images
2060
2061  - improved performance of reading PBM/PGM/PPM images
2062
2063  - added support for writing PBM images if the image is paletted and
2064    contains only black and white
2065
2066  - added a new make_colors value - "mono"
2067
2068  - switched from the svn log Changes to a manual Changes to reduce
2069    noise
2070
2071  - new sample code - samples/flasher.pl
2072
2073 Bug fixes:
2074
2075  - CRITICAL: the "Imager" typemap entry (not used by Imager itself)
2076    was returning an image object with an extra reference, this
2077    resulted in a memory leak.
2078    http://rt.cpan.org/Ticket/Display.html?id=24992
2079
2080  - fix rendering on alpha channel images for the FreeType 2.x driver
2081    http://rt.cpan.org/Ticket/Display.html?id=11972
2082
2083  - reading bmp files now consitently handles short reads.  You can now
2084    supply a parameter to treat a short read as successful and set
2085    i_incomplete
2086    http://rt.cpan.org/Ticket/Display.html?id=8426
2087
2088  - previously, reading ASCII PBM files required spaces between samples,
2089    even though the format doesn't require that
2090
2091  - improved documentation of the unsharpmask filter (I hope)
2092    http://rt.cpan.org/Ticket/Display.html?id=25531
2093
2094  - force flushing of the output from i_tt_dump_names() and test output
2095    in t/t35ttfont.t to prevent output from being mixed up.
2096    https://rt.cpan.org/Ticket/Display.html?id=24859
2097
2098  - rewrite a conditional expression as an if() to hopefully work around
2099    a bug in the pre-4.0 GCC Apple shipped with OS X 10.4.
2100    https://rt.cpan.org/Ticket/Display.html?id=25561
2101
2102  - avoid Data::Dumper in regops.perl to support older releases of perl
2103    https://rt.cpan.org/Ticket/Display.html?id=24391
2104
2105 Imager 0.55 - 16 Dec 2006
2106 ===========
2107
2108 This is primarily a bug fix release.
2109
2110 Note: Test::More is now a pre-requisite for Imager and is no longer bundled.
2111
2112 There is one new feature:
2113
2114  - the Win32 font driver now supports UTF8 (RT 22166)
2115    http://www.cpanforum.com/threads/3276
2116    http://rt.cpan.org/Ticket/Display.html?id=22166
2117
2118 Several bugs were fixed:
2119
2120  - the string() method would not output the string "0"
2121    http://rt.cpan.org/Public/Bug/Display.html?id=21770
2122
2123  - fills.c was failing to compile on Solaris 10 (compiler unknown)
2124    http://rt.cpan.org/Public/Bug/Display.html?id=21944
2125
2126  - the gif_disposal and gif_user_input tags weren't being read from
2127    the file correctly
2128    http://rt.cpan.org/Public/Bug/Display.html?id=22192
2129
2130  - gif.c was failing to build under MSVC
2131    http://rt.cpan.org/Ticket/Display.html?id=23922
2132
2133  - in some cases strings passed to the string() method were treated as
2134    terminated by NUL (chr 0)
2135    http://rt.cpan.org/Public/Bug/Display.html?id=21770
2136
2137  - on "MSWin32" perl builds we now link to -lzlib instead of -lz since
2138    that's the default build name for zlib on Win32.
2139    http://rt.cpan.org/Ticket/Display.html?id=23064
2140
2141  - search $Config{incpath} for headers too, which we should have been
2142    doing all along.
2143
2144 Win32 font driver fixes:
2145
2146  - the global descent value from bounding box was the wrong sign
2147    http://www.cpanforum.com/threads/3276
2148
2149  - if the first or last glyph overflowed the left or right side of the
2150    advance width they would be clipped
2151
2152
2153 Imager 0.54 - 14 Sep 2006
2154 ===========
2155
2156 This is primarily a feature release:
2157
2158  - a new qtype value 'mixing' has been added to the scale()
2159    method. This is faster than 'normal', slower than 'preview'. This
2160    is based on the method used by pnmscale, and seems to produce less
2161    blurry results than normal.
2162    http://rt.cpan.org/Public/Bug/Display.html?id=20677
2163
2164  - the rubthrough() method can now render onto images with an alpha
2165    channel.
2166    http://rt.cpan.org/Ticket/Display.html?id=20678
2167
2168  - the read_multi() method now falls back to calling doing a single
2169    image read via the read() method and write_multi() will now fall
2170    back to calling write() if a single image is supplied. This means
2171    you can simply call the read_multi() or write_multi() functions
2172    without having to check if the type is formatted by that method.
2173    http://rt.cpan.org/Ticket/Display.html?id=19457
2174    http://rt.cpan.org/Ticket/Display.html?id=19458
2175
2176  - the GIF loop extension can now be written. If you don't have
2177    libungif/giflib 4.1.4 (or some distribution's bugfixed equivalent) you
2178    should upgrade.
2179    http://rt.cpan.org/Ticket/Display.html?id=21185
2180
2181  - getscanline() and setscanline() can now read/write palette index
2182    based data from/to the image for paletted images, by setting type to
2183    'index'.
2184    http://rt.cpan.org/Ticket/Display.html?id=20338
2185
2186  - we no longer hassle you to disable GIF support
2187    http://rt.cpan.org/Ticket/Display.html?id=20687
2188
2189  - minor documentation fixes
2190
2191
2192 Imager 0.53 - 26 Jul 2006
2193 ===========
2194
2195 This is a bugfix release.
2196
2197 Some test code was left in a code path not covered by the test
2198 suite. A test was added to cover this code path and the test code was
2199 removed.
2200 http://rt.cpan.org/Public/Bug/Display.html?id=20705
2201
2202
2203 Imager 0.52 - 25 Jul 2006
2204 ===========
2205
2206 This is primarily a feature release, but contains a fair few bug
2207 fixes, new features:
2208
2209  - ability to read and write MS Windows ICO and CUR files
2210
2211  - you can now add file format plugins to support new file formats
2212
2213  - add POD coverage tests
2214
2215  - setcolors() and addcolors() now accept color names and so on
2216    instead of requiring Imager::Color objects.
2217    http://rt.cpan.org/Ticket/Display.html?id=20056
2218
2219  - flood_fill() can now fill to a specified border color instead of
2220    just to the area the same color as the seed.
2221    http://rt.cpan.org/Ticket/Display.html?id=19618
2222
2223
2224 Bug fixes:
2225
2226  - bounding_box for the T1 driver wasn't converting UTF8 to ascii when
2227    calculating the advance width.
2228    http://rt.cpan.org/Public/Bug/Display.html?id=20554
2229
2230  - bounding_box for the T1 driver wasn't including leading and
2231    trailing spaces in the bounding box as the other drivers did, it also
2232    produced strange results for empty strings or strings containing only
2233    spaces
2234
2235  - when reading CMYK jpeg images they were being transferred to the
2236    image object as is, producing a four channel image. It only looked ok
2237    due to an old still unfixed Photoshop bug. We now convert from the
2238    inverted CMYK that photoshop (and Corel for example) produce into RGB.
2239    http://rt.cpan.org/Ticket/Display.html?id=20416
2240
2241  - reading a CYMK TIFF would result in a 4 channel image, reading any
2242    image with more than 4 channels (eg. RGB with 2 alpha channels) would
2243    result in an error.
2244    http://rt.cpan.org/Ticket/Display.html?id=20415
2245
2246  - added /usr/local/include to the default include search path, since
2247    we were already searching /usr/local/lib for libraries.
2248
2249 And various minor fixes and documentation updates.
2250
2251
2252 Imager 0.51 - 23 Apr 2006
2253 ===========
2254
2255  - fix a validation bug when processing JPEG EXIF data that can cause
2256    a crash
2257    http://rt.cpan.org/Public/Bug/Display.html?id=18496
2258
2259  - fix mis-processing of the src_maxx and src_maxy parameters of the
2260    paste() method
2261    http://rt.cpan.org/Public/Bug/Display.html?id=18712
2262
2263  - fix a problem in Imager's "smart" handling of the color parameter
2264    to various methods.
2265    http://rt.cpan.org/Public/Bug/Display.html?id=18561
2266
2267
2268 Imager 0.50 - 29 Mar 2006
2269 ===========
2270
2271  - CRITICAL: fixes a segmentation fault from attempting to write a 2
2272    or 4 channel image to jpeg or a 2 channel image to tga where the
2273    output is an in-memeory buffer.
2274    http://rt.cpan.org/Public/Bug/Display.html?id=18397
2275
2276  - fixes an incorrect pointer parameter in the PNG code
2277    http://rt.cpan.org/Public/Bug/Display.html?id=18051
2278
2279  - skip Inline::C tests when building in a directory with spaces
2280    http://rt.cpan.org/Public/Bug/Display.html?id=18049