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