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