390e0fcf000904104d44ac9210a517b3fee0df93
[imager.git] / Changes
1 Imager release history.  Older releases can be found in Changes.old
2
3 Imager 0.81 - unreleased
4 ===========
5
6  - added coverage tests for masked images (maskimg.c @100% test coverage)
7
8  - add hsv() method to Imager::Color
9    Thanks to Leolo (Philip Gwyn)
10    https://rt.cpan.org/Ticket/Display.html?id=65385
11
12  - split libt1 Type 1 font support into a sub-module
13    https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
14
15  - add a preload() class method for use in forking servers, and to
16    work around limitations in PAR.
17    https://rt.cpan.org/Ticket/Display.html?id=65665
18
19 Bug fixes:
20
21  - paletted writes to a masked image are now masked correctly.
22    Revealed by new coverage tests.
23
24  - update the filter plugin documentation.
25    https://rt.cpan.org/Ticket/Display.html?id=56513
26
27  - add the matrix() method to Imager::Matrix2d to allow creation of a
28    matrix with specified co-efficients.  You can now multiple an
29    Imager::Matrix2d object by a 9 element array ref or a number.
30    https://rt.cpan.org/Ticket/Display.html?id=29938
31
32  - really fix loading TTF fonts with FT2 when FT1 isn't available.
33    Thanks to Leolo (Philip Gwyn)
34    https://rt.cpan.org/Ticket/Display.html?id=65386
35    https://rt.cpan.org/Ticket/Display.html?id=62855
36
37  - make sure each test script that needs testout/ creates it.
38    https://rt.cpan.org/Ticket/Display.html?id=65088
39
40  - handle a slightly different warning from libtiff 4.x
41    https://rt.cpan.org/Ticket/Display.html?id=65268
42
43 Imager 0.80 - 17 Jan 2011
44 ===========
45
46  - added coverage tests for Imager::Fountain and Imager::Color::Float
47
48  - Imager is now maintained in git
49    http://git.imager.perl.org/imager.git
50    git://git.imager.perl.org/imager.git
51
52 Bug fixes:
53
54  - images with an translucent alpha channel were not scaled correctly
55    by the default (qtype=normal) scaling method.
56    https://rt.cpan.org/Public/Bug/Display.html?id=63922
57
58  - Imager::Color::Float now translates "#FFFFFF" to white instead of
59    just a little darker.
60
61  - make the default color map build algorithm "mediancut".  This
62    changes the default color map builder for writing GIFs back to what
63    it was in 0.77, reverting a performance regression.
64    https://rt.cpan.org/Ticket/Display.html?id=64785
65
66  - handle failure to create a masked image correctly
67
68 Imager 0.79 - 10 Dec 2010
69 ===========
70
71  - add Imager::Test to the POD coverage tests and document the missing
72    functions.
73
74  - the convert() method now optimizes the case where all output
75    channels are either 0, sourced from a single input channel or 1.
76    This significantly speeds up presets like "addalpha", "green".
77    https://rt.cpan.org/Ticket/Display.html?id=51254
78
79  - add wiggle.pl sample, as suggested by Dan Oppenheim.
80
81  - add the combine() method to combine channels from multiple source
82    images into a new image
83    https://rt.cpan.org/Ticket/Display.html?id=11872
84
85 Bug fixes:
86
87  - treat the co-efficients for convert() as doubles instead of floats.
88
89  - If a higher (earlier) priority font handler failed to load, that
90    would crash preventing loading of later font handlers.
91    https://rt.cpan.org/Ticket/Display.html?id=62855
92
93  - parse defines from the options returned by pkg-config --cflags
94    https://rt.cpan.org/Ticket/Display.html?id=63223
95
96  - a regen of the MANIFEST revealed that GIF and FT2 tests weren't
97    included in the tarball.  They are now included.
98
99 Imager 0.78 - 4 Oct 2010
100 ===========
101
102 Bug fixes:
103
104  - don't access deprecated members of the png_structp.
105    https://rt.cpan.org/Ticket/Display.html?id=60242
106
107  - document that using color objects is faster than supplying colors
108    by name, etc.
109    https://rt.cpan.org/Ticket/Display.html?id=61047
110
111  - Imager::Probe now accepts array references for incpath and libpath.
112    https://rt.cpan.org/Ticket/Display.html?id=60244
113
114 Imager 0.77_02 - 27 Sep 2010
115 ==============
116
117  - moved Win32, FreeType 2 font support into sub-modules.
118    https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
119    Uses Imager::Probe now.
120    https://rt.cpan.org/Public/Bug/Display.html?id=61328
121
122  - tested successfully with jpeg-8b
123    https://rt.cpan.org/Ticket/Display.html?id=60221
124
125 Bug fixes:
126
127  - from _01: look for missing file support test files in the right
128    places.
129
130  - flood_fill() wouldn't fill the right side of a single scan-line
131    fill area.
132    Thanks to Nicolas Roggli for reporting this.
133
134  - flood_fill wouldn't fill to the left edge of the image if the
135    starting line didn't reach the left edge.
136    Thanks to Nicolas Roggli for reporting this.
137
138 Imager 0.77_01 - 13 Sep 2010
139 ==============
140
141  - add each library-directory/pkgconfig/ to the pkg-config search path
142    in Imager::Probe.
143    Thanks to Justin Davis.
144    https://rt.cpan.org/Ticket/Display.html?id=60491
145
146  - moved GIF, TIFF, JPEG file handling code into sub-modules in
147    preparation for separate distribution.
148    https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
149
150  - optimize filled box drawing (color, not fill)
151
152 Bug fixes:
153
154  - Imager::Probe was calling ExtUtils::Liblist to initialize
155    LD_RUN_PATH supplying an undefined value rather than the found
156    directory.  Thanks to Justin Davis.
157    https://rt.cpan.org/Ticket/Display.html?id=60491
158
159  - only prepend ./ to font filenames when passing them to T1Lib and
160    then only when it would use its search mechanisms.
161    https://rt.cpan.org/Ticket/Display.html?id=60509
162
163  - fix the cache check for the X rgb.txt loader.  This is typically
164    used for color translation on Unix-like systems, and the fix
165    improves performance of supplying colors by name by about 80 times.
166    Test code that managed 3400 10x10 pixel boxes/second sped up to
167    25700 boxes/second.
168
169  - clarify that Imager doesn't write EXIF metadata to images.
170    https://rt.cpan.org/Ticket/Display.html?id=60637
171
172  - Imager::Probe can now search subdirectories under its include path.
173    Used by the PNG Makefile.PL to find headers and libraries when they
174    aren't in the base directory, as in cygwin.
175    https://rt.cpan.org/Ticket/Display.html?id=60635
176
177 Imager 0.77 - 11 Aug 2010
178 ===========
179
180 I don't want Imager::File::PNG indexed as part of Imager, but forgot
181 to update the META.yml before updating the version.
182
183  - don't index Imager::File::PNG as part of Imager
184
185  - add resources to META.yml
186
187 Imager 0.76 - not released
188 ===========
189
190 Bug fixes:
191
192  - the align_string() method would ignore a string of "0" due to a
193    mis-use of C< ||= >.
194    Thanks to Maurice Height for reporting this.
195    https://rt.cpan.org/Ticket/Display.html?id=60199
196
197 Imager 0.75_03 - 09 Aug 2010
198 ==============
199
200 Bug fixes:
201
202  - read_types() and write_types() would include png when it wasn't
203    available due to a problem with the %formats tie
204
205  - handle dependent libraries correctly (eg -lpng requiring -lz) in
206    the code run phase of library probing.
207
208 Imager 0.75_02 - 07 Aug 2010
209 ==============
210
211 Bug fixes:
212
213  - add file missing from MANIFEST, which was causing TIFF failures.
214
215 Imager 0.75_01 - 06 Aug 2010
216 ==============
217
218 Test release for the new PNG probe.
219
220  - added the ability to read multiple-image PNM files.
221    Note that unlike the pbm/pgm/ppm specification this accepts mixed
222    format files and allows white space padding between files.
223    Thanks to Philip Gwyn (Leolo) for this patch.
224
225  - moved the PNG file handling code into a sub-module in preparation
226    for separate distribution.
227    https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
228    Also helps avoid complications from -I/-L compile/link options from
229    other libraries.
230
231 Bugs:
232
233  - Imager->new(data => $data) didn't try to process image file data in
234    $data
235    https://rt.cpan.org/Ticket/Display.html?id=58761
236
237  - t/t50basicoo.t no longer depends on the other tests to generate its 
238    input files.
239    https://rt.cpan.org/Ticket/Display.html?id=9798
240    Also, it wasn't testing pnm (pnm vs ppm mix-up)
241
242  - update the documentation of hardinvert to match the change in 0.62.
243    https://rt.cpan.org/Ticket/Display.html?id=59785
244
245  - added hardinvertall filter which also inverts the alpha channel
246    (sorry for the mess)
247
248  - when probing for TIFF, set LD_RUN_PATH just as the Makefile does so
249    the probe can find the library for the test run.
250    https://rt.cpan.org/Ticket/Display.html?id=57518
251
252 Imager 0.75 - 20 Jun 2010
253 ===========
254
255  - use PERL_NO_GET_CONTEXT to slightly improve performance on threaded
256    perls (not measured)
257
258 Bugs:
259
260  - an opacity fill based on a fountain fill would segfault when
261    filling an 8-bit/sample image.
262
263  - merge thickline branch polygon fix
264    https://rt.cpan.org/Ticket/Display.html?id=43518
265
266 Imager 0.74 - 7 May 2010
267 ===========
268
269 Bug fixes:
270
271  - read_multi() didn't handle a missing file format library correctly,
272    aborting on failing to call i_readgif_multi_wiol() or
273    i_readtiff_multi_wiol().
274
275  - fix spelling errors patched by Debian
276    http://svn.debian.org/viewsvn/pkg-perl/trunk/libimager-perl/debian/patches/spelling.patch?revision=54839&view=markup
277
278  - add an (unshipped) author test to spellcheck Imager's POD.
279
280  - update the TIFF file format documentation
281    https://rt.cpan.org/Ticket/Display.html?id=56510
282
283  - lib/Imager/IO.pod was written almost 4 years ago but never shipped.
284
285 Imager 0.73 - 15 Mar 2010
286 ===========
287
288  - implement outline circles, both anti-aliased and not
289    https://rt.cpan.org/Ticket/Display.html?id=19755
290
291  - a combine => "none" fill to a 1 or 3 channel image would produce
292    the incorrect colour.
293
294 Imager 0.72 - 09 Dec 2009
295 ===========
296
297 Bump version for release, since 0.71_03 is stable with CPAN testers.
298
299 Imager 0.71_03 - 5 Dec 2009
300 ==============
301
302  - further adjust the threads test so it only performs the tests on
303    perls where it's expected to work, and only if the threads module
304    can be loaded.
305
306 Imager 0.71_02 - 1 Dec 2009
307 ==============
308
309  - adjust the way we load the threads module for the threads test so
310    it works with non-threaded perls
311
312 Imager 0.71_01 - 30 Nov 2009
313 ===========
314
315 Bug fixes:
316
317  - use scanline oriented operations to flip images instead of pixel
318    operations
319    https://rt.cpan.org/Ticket/Display.html?id=39278
320
321  - use double/sample operations to flip large sample images instead of
322    8-bit sample operations.
323    https://rt.cpan.org/Ticket/Display.html?id=39280
324
325  - fix POD nits
326    https://rt.cpan.org/Ticket/Display.html?id=51874
327
328  - prevent double-frees when someone creates Imager objects and then
329    creates a thread.  Note: this just handles some simple cases,
330    Imager doesn't support perl threads, and isn't likely to.
331    https://rt.cpan.org/Ticket/Display.html?id=52268
332
333 Imager 0.71 - 16 Nov 2009
334 ===========
335
336  - add the opacity fill type - an adaptor that modifies the opacity of
337    another fill.
338
339 Bug fixes:
340
341  - the conv filter now enforces that the sum of the coefficients is
342    non-zero.  Also, rather than skipping pixels off the edge off the
343    edge of the image, the closest edge pixel is used.  Previously
344    dividing by the zero sum of coefficients could cause invalid
345    results or runtime exceptions.
346    Thanks to David Cantrell's Alpha-NetBSD CPAN test box for revealing
347    this bug.
348
349 Imager 0.70 - 21 Sep 2009
350 ===========
351
352 Bug fixes:
353
354  - release image row and comments memory on all error returns in gif
355    reader
356
357  - handle zero length extensions, previously this would cause a null
358    pointer dereference
359    Thanks to Krzysztof Wojtaƛ for the test data and fix for this.
360
361  - an integer division meant that preview scaling to below 1 pixel
362    wide or high (which isn't too useful anyway) was calculating using
363    NaNs on most platforms, and causing an exception on others.
364    Thanks to David Cantrell for producing a backtrace of the crash on
365    his Alpha-NetBSD CPAN test box which made it possible to track this
366    down.
367
368 Imager 0.69 - 08 Sep 2009
369 ===========
370
371 Bug fixes:
372
373  - broken test fix - was attempting to call a function skip_all, when
374    that should be a parameter to plan().
375
376  - briefly document apidocs.perl, the tool used to build
377    Imager::APIRef and make some minor enhancements
378
379  - various minor documentation enhancements and fixes.
380
381 Imager 0.68 - 07 Sep 2009
382 ===========
383
384  - Imager->new(file => $filename) and other similar incantations will
385    load the given file.
386    https://rt.cpan.org/Ticket/Display.html?id=48261
387
388 Bug fixes:
389
390  - avoid using CHECK as a label in Imager::Test
391    http://nntp.x.perl.org/group/perl.cpan.testers/5220921
392
393  - re-work most image file test files that require a library into
394    separate library present/not present files to remove stupidly long
395    conditionals
396
397  - don't treat rubthrough() outside the bounds of the target image as
398    an error.
399    http://nntp.x.perl.org/group/perl.cpan.testers/5185716
400
401 Imager 0.67_01 - 02 Sep 2009
402 ==============
403
404 Bug fixes:
405
406  - correct documentation of default of raw image interleave read
407    parameter
408    https://rt.cpan.org/Ticket/Display.html?id=42074
409
410  - add raw_ prefix to raw read parameters, though the original names
411    still work.
412
413  - fail the read if an invalid raw_interleave parameter is supplied
414
415  - warn if no interleave or raw_interleave parameter is supplied,
416    since the documented default was wrong, and incompatible with the
417    write format
418
419  - for reading raw images, if raw_storechannels > raw_datachannels,
420    set the extra channels in the image to 0
421
422  - when probing for executables like freetype-config, search for .bat
423    and .cmd on MSWin32, as well as .exe.
424    https://rt.cpan.org/Ticket/Display.html?id=49275
425
426  - re-work the external libraries section of README:
427    - list Debian and Redhat package names for each library
428    - reformatting
429    - update URLs
430
431  - use the new EU::MM META_MERGE facility instead of generating
432    META.yml from scratch
433    https://rt.cpan.org/Ticket/Display.html?id=47888
434
435  - use Devel::CheckLib (bundled, modified) to check which release of
436    libtiff is installed and reject 3.9.0
437    http://bugzilla.maptools.org/show_bug.cgi?id=2088
438    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=543079
439
440 Imager 0.67 - 12 Dec 2008
441 ===========
442
443 Bug fixes:
444
445  - fix a packaging error
446
447 Imager 0.66 - 12 Dec 2008
448 ===========
449
450  - 24-bit color .ICO/.CUR files can now be read.
451
452 Bug fixes:
453
454  - an optimization skipping 0 src alpha values could cause the
455    rubthrough() to read past the end of a buffer.
456    http://www.nntp.perl.org/group/perl.cpan.testers/2008/05/msg1509184.html
457
458  - corrected a reference leak where writing GIFs would leak memory.
459    This could also happen calling to_paletted().
460    Also documented the underlying long existing feature where the
461    colors parameter is filled with the generated color table and added
462    tests for it.
463    http://rt.cpan.org/Ticket/Display.html?id=41028
464
465  - write out the image size in bytes field of a BMP correctly.
466    http://rt.cpan.org/Ticket/Display.html?id=41406
467
468  - add limited tests for Imager::ExtUtils
469
470  - make Imager::ExtUtils->includes use an absolute path, since
471    a relative path could cause failures using Inline::C.
472    http://rt.cpan.org/Ticket/Display.html?id=37353
473
474  - re-arrange the POD for Imager::Font::BBox:
475    - mark total_width(), pos_width(), end_offset() obsolete, since
476      they're mostly for backwards compatibility
477    - group width methods and height methods
478    https://rt.cpan.org/Ticket/Display.html?id=39999
479
480 Imager 0.65 - 20 May 2008
481 ===========
482
483 Bug fixes:
484
485  - In some cases when an error occurs reading those parts of a JPEG
486    file after the image the scan-line buffer could be freed a second
487    time.  In cases where the the error occured while reading the image
488    data it's possible that the buffer could have leaked.
489    Thanks to Gabriel Vasseur for reporting this and help in tracking
490    it down.
491
492  - the gif_screen_height tag was overriding the screen width and being
493    ignored for the screen height when present.
494    https://rt.cpan.org/Public/Bug/Display.html?id=35568
495
496 Imager 0.64 - 23 April 2008
497 ===========
498
499 This is a bug fix release.  This includes a fix for a possible
500 security issue.
501
502 Bug fixes:
503
504  - Possible security issue: The floating point sample path for image
505    based fills had a buffer overflow.  This would overwrite the end of
506    a malloc()ed buffer with double precision floats.
507    http://rt.cpan.org/Ticket/Display.html?id=35324
508    CVE-2008-1928
509
510  - check that the result of fileno($fh) is defined rather than simply
511    true when read() or write() is supplied with an fh parameter.
512    http://rt.cpan.org/Ticket/Display.html?id=35139
513
514  - i_scale_axis() wasn't checking the result of i_img_new_ch()
515    resulting in a SIGSEGV when attempting to scale an image to a size
516    too large to fit in memory.  This is a NULL pointer access issue,
517    not a buffer overflow.
518    Added a check for the failure.
519    scale_calculate() (and hence scale()) will now fail if any of the
520    scale size parameters are a reference.
521    http://rt.cpan.org/Ticket/Display.html?id=35172
522
523  - Regression: filling a greyscale image with a hatch used the wrong
524    color channels from the supplied fg/bg colors.
525    https://rt.cpan.org/Ticket/Display.html?id=35278
526
527  - fixed a related problem for image fills.
528
529 Imager 0.63 - 7 April 2008
530 ===========
531
532 This release primarily contains changes to improve ease of use -
533 rather than you having to convert images to the appropriate number of
534 channels, Imager handles it internally.  How to handle drawing colors
535 and the default combine mode is a thornier problem left for some other
536 release.
537
538  - the font libraries are now only initialized when needed.
539    http://rt.cpan.org/Ticket/Display.html?id=28825
540
541  - moved the imtoc.perl code into Imager::Preprocess
542
543  - paste() and rubthrough() now adapt the source image data to the
544    destination, so you can now safely paste/rubthrough from greyscale
545    images to color images or back, or from alpha channel images to
546    noalpha channels or back.
547    https://rt.cpan.org/Ticket/Display.html?id=30908
548
549  - rubthrough() now falls back to pasting when the source doesn't have
550    an alpha channel.  This effectively treats the source as having a
551    max alpha channel, the right thing to do.
552    http://rt.cpan.org/Ticket/Display.html?id=29944
553
554  - re-worked most of the area filling code to use a common set of
555    functions when filling.
556    Corrected normal combine mode.
557    Rewrote most of the combine modes to match the way the SVG draft
558    defines them with respect to a translucent source and destination.
559    Added tests for translucent source and destination.
560    Added tests to check 8-bit/sample and double/sample combines work
561    similarly.
562    https://rt.cpan.org/Ticket/Display.html?id=29879
563
564  - writing a 2 or 4 channel image to a JPEG file will now write that
565    image as if composited against a background, black by default,
566    overridable with the i_background tag/parameter.
567    https://rt.cpan.org/Ticket/Display.html?id=29876
568
569  - writing a 2 or 4 channel image to a PGM/PPM file will now write
570    that image as if composited against a background, black by default,
571    overridable with the i_background tag/parameter.
572    http://rt.cpan.org/Ticket/Display.html?id=30074
573
574  - writing a 2 or 4 channel image to a BMP file will now write that
575    image as if composited against a background, black by default,
576    overridable with the i_background tag/parameter.
577    http://rt.cpan.org/Ticket/Display.html?id=30075
578
579 Bug fixes:
580
581  - Imager::Matrix2d->translate() now only requires one of the x or y
582    parameters.
583    http://rt.cpan.org/Ticket/Display.html?id=29937
584
585  - mixing qtype scaling now sets all channels of a pixel to zero if
586    the pixel has zero coverage (zero alpha).  This should produce more
587    compressible output files.
588    http://rt.cpan.org/Ticket/Display.html?id=32324
589
590  - removed the pointless #! line from lib/Imager/Font/Wrap.pm
591    Noticed when I saw:
592    https://bugzilla.redhat.com/show_bug.cgi?id=166254
593    I'm not changing the #! lines of the sample code, since it's sample
594    code, not intended for installation.
595    http://rt.cpan.org/Ticket/Display.html?id=33408
596
597  - some TGA images weren't being detected correctly as TGA images
598    https://rt.cpan.org/Ticket/Display.html?id=32925
599
600  - handling of the left-over bit for 16-bit/pixel TGA images has been
601    changed to match the behaviour of the GIMP.  Previously the bit
602    being set was treated as an opaque pixel, but one user reported a
603    problem with loading such an image.  I haven't been able to find any
604    tools beyond the GIMP that handle alpha-channel 16-bit TGAs, so
605    I'll match it's behaviour.  See issue 114913 in the GIMP's
606    bugzilla.
607    http://rt.cpan.org/Ticket/Display.html?id=32926
608
609 Imager 0.62 - 10 December 2007
610 ===========
611
612  - Makefile.PL now expands ~/path supplied to --incpath or --libpath
613    to /path under your home directory.
614    http://rt.cpan.org/Ticket/Display.html?id=29484
615
616  - the old dynaload code used Mach API functions to load dynamic
617    libraries on Mac OS X.  These APIs have been deprecated in OS X
618    10.5 and were causing some build problems.
619    So henceforth Imager uses the dlopen() family of functions, and you 
620    will need version 10.3 or later of OS X.
621
622  - added the det() function to the transform2() engine.
623    added the sample quad_to_square.pl
624    Courtesy Richard Fairhurst.
625    http://rt.cpan.org/Ticket/Display.html?id=31244
626
627 Bug fixes:
628
629  - samples/gifscale.pl sourced the base value for gif_top from
630    gif_left.
631    Thanks to Eleneldil G. Arilou for pointing this out.
632
633  - t/t82inline.t no longer loads B at runtime, to work around a bug
634    in some 5.005_0[45] installations.
635    http://rt.cpan.org/Ticket/Display.html?id=30508
636
637  - work around Module::Depends::Intrusive bug #21229
638    http://rt.cpan.org/Ticket/Display.html?id=30520
639
640  - the hardinvert filter no-longer inverts the alpha channel.
641    http://rt.cpan.org/Ticket/Display.html?id=30002
642
643  - the hardinvert filter now supports large samples
644
645 Imager 0.61_02 - 28 November 2007
646 ==============
647
648  - major TIFF support re-work
649    http://rt.cpan.org/Ticket/Display.html?id=20329
650
651  - added a C level image interface for accessing samples from 1-32
652    bits, exposed this at the perl level in getsamples()
653
654  - the conv filter now works at floating point precision for high bit
655    images
656
657  - added is_bilevel method to test whether an image should be written as
658    a bilevel image if the image format supports it.
659
660  - added -log-stderr as an Imager import list option
661
662  - added some important types to Imager::APIRef
663
664  - added test_image_double() to Imager::Test
665
666 Bug fixes:
667
668  - Imager::Fountain couldn't read GIMP gradient files with 10 or more
669    segments
670
671  - the scale() method with qtype mixing now handles images with an
672    alpha channel correctly.
673
674  - fixed a broken link from the "animated GIF" entry in the concept index.
675    Thanks to Slaven Rezic.
676    http://rt.cpan.org/Ticket/Display.html?id=30889
677
678  - on some perl's the infix expression parser test would fail due to
679    actions in the grammar returning false.  Made sure all actions return
680    a true value.
681    Thanks to Richard Fairhurst for spending a lot of time in tracking
682    down this problem.
683    http://rt.cpan.org/Public/Bug/Display.html?id=29562
684
685 Imager 0.61 - 5 November 2007
686 ===========
687
688  - added samples/gifscale.pl, which adjusts the screen size/position tags
689    when scaling an animated gif
690    http://rt.cpan.org/Ticket/Display.html?id=27591
691
692 Bug fixes:
693
694  - correct handling of sz in matrix_transform() - this should allow
695    perspective type transformations to work now.
696    http://rt.cpan.org/Ticket/Display.html?id=29936
697
698  - prevent a cast to integer warning on x64 builds in datatypes.c
699    also fixed some other type warnings
700    https://rt.cpan.org/Ticket/Display.html?id=30204
701
702  - some sub-directory tests depended on files produced by the parent
703    directory tests
704    http://rt.cpan.org/Ticket/Display.html?id=30203
705
706  - Imager::Font::Wrap doesn't correctly set savepos
707    thanks to Nikita Dedik and Eleneldil G. Arilou for reporting this.
708    http://rt.cpan.org/Ticket/Display.html?id=29771
709
710  - test 171 in t/t01introvert.t was failing on perls configured to
711    use long double.
712    http://rt.cpan.org/Ticket/Display.html?id=29413
713
714  - the code for the transform2() uminus operator was missing a break.
715    Added tests for better code coverage of the ops.
716    http://rt.cpan.org/Ticket/Display.html?id=29296
717
718  - the SGI RLE compression code could overflow its compression buffer
719    http://rt.cpan.org/Ticket/Display.html?id=30334
720
721  - the 32-bit output function used by the SGI code only handled values
722    under 0x10000.  This was most noticable when writing large RLE images.
723    http://rt.cpan.org/Ticket/Display.html?id=30335
724
725  - validate chan_count for chans == NULL for each of the i_gsamp()
726    implementations.
727    http://rt.cpan.org/Ticket/Display.html?id=28985
728
729  - attempt to work around the test failure at 
730    http://www.nntp.perl.org/group/perl.cpan.testers/2007/09/msg650810.html
731    http://rt.cpan.org/Ticket/Display.html?id=29562
732
733  - improve the error messages produced when attempting to read or write
734    an unknown image file format.
735    http://rt.cpan.org/Ticket/Display.html?id=30103
736
737  - improve the transform2() documentation
738    http://rt.cpan.org/Ticket/Display.html?id=29267
739
740  - correctly generate the author key in META.yml
741    http://rt.cpan.org/Ticket/Display.html?id=30377
742
743  - correctly blend a rotated (or matrix_transformed()) image when
744    performing interpolation in the presence of an alpha channel.
745    Also corrected the centring of the rotated image on the output
746    image.
747
748 Imager 0.60 - 30 August 2007
749 ===========
750
751  - Finished/rewrote Arnar's old SGI RGB file format support, so Imager
752    now has full SGI RGB image format, including RLE and 16-bit/sample
753    images.
754    https://rt.cpan.org/Ticket/Display.html?id=8666
755
756  - logging functions are now available in the API
757
758  - applied Gabriel Vasseur's patch
759    added documentation, further tests, and support for greyscale images
760    Obviously problems are my fault :)
761    https://rt.cpan.org/Ticket/Display.html?id=28142
762
763  - the mask for ICO/CUR images is now applied as an alpha channel to
764    the returned image.  For the old behaviour, supply ico_masked => 0
765    to read() or read_multi().  This should be less confusing when
766    using Imager as a general image processor.
767    https://rt.cpan.org/Ticket/Display.html?id=29001
768
769 Bug fixes:
770
771  - in some cases it's possible for giflib/libungif to return color 
772    indexes outside the range of colors defined by the image's palette.
773    We now expand the palette to match the indexes used.
774    Thanks to Gabriel Vasseur for reporting this.
775
776  - fixed various memory leaks that could occur when failing to read png,
777    jpeg, bmp or tga files.
778
779  - to avoid confusion, channels not present in the image are returned as
780    zero by getscanline().  This has no effect on the C level i_glin()
781    and i_glinf() API functions which continue to not set the unused
782    channels.
783
784  - the convert() method now returns an image of the same sample size as
785    the source image.
786    https://rt.cpan.org/Ticket/Display.html?id=28492
787
788  - remove repeated text in Imager::Files
789    http://rt.cpan.org/Ticket/Display.html?id=27589
790
791  - be even more explicit that scale() and friends don't modify the source
792    image, but return a new image.
793    http://rt.cpan.org/Ticket/Display.html?id=28570
794
795  - improve the error message from errstr() when you try to load a font
796    for which the driver hasn't been built in Imager.
797    http://rt.cpan.org/Ticket/Display.html?id=27571
798
799  - transparency is now enabled by default when writing GIF images
800    http://rt.cpan.org/Ticket/Display.html?id=27615
801
802  - Imager would not load on Windows 98
803    http://rt.cpan.org/Ticket/Display.html?id=27653
804
805 Imager 0.59 - 14 June 2007
806 ===========
807
808 Bug fixes:
809
810  - fixes a regression introduced by the fixes for RT 11972
811    http://rt.cpan.org/Ticket/Display.html?id=27546
812
813  - cropping outside the image would return an Imager object with
814    no low-level image object, instead of returning false.
815    Fixed by: Philip Gwyn (Leolo)
816    http://rt.cpan.org/Ticket/Display.html?id=27509
817
818 Imager 0.58 - 16 May 2007
819 ===========
820
821 No significant changes from 0.57_01.
822
823 Imager 0.57_01 - 11 May 2007
824 ==============
825
826  - added to_rgb16 to produce a 16-bit/sample version of an image
827
828  - improve freetype 1.x text output efficiency
829
830 Bug fixes:
831
832  - search another place for rgb.txt, and check all the places 
833    Imager::Color checks when deciding whether to skip testing it
834    http://rt.cpan.org/Ticket/Display.html?id=26064
835
836  - use a convolution kernel size based on the stddev rather than a
837    fixed size when performing a gaussian blur
838    http://rt.cpan.org/Ticket/Display.html?id=25645
839
840  - document the difference() method's mindist parameter, and debug it.
841
842  - put the Imager release number in the Inline::C generated code to
843    regenerate Inline code when a new release of Imager is installed.
844    http://rt.cpan.org/Ticket/Display.html?id=26278
845
846  - fix rendering on alpha channel images for the FreeType 1.x driver.
847    http://rt.cpan.org/Ticket/Display.html?id=11972
848
849  - fix rendering on alpha channel images for the T1lib driver.
850    http://rt.cpan.org/Ticket/Display.html?id=11972
851
852  - reworked library probing, we can now set more than one probe
853    function for a library.  Disabled the default (non-freetype-config)
854    library probe and added an extra probe function that searches for
855    both ft2build.h and whatever it includes, and adds -I as needed.
856    Hopefully this will fix build problems like
857    http://www.nntp.perl.org/group/perl.cpan.testers/2007/05/msg472281.html
858    http://rt.cpan.org/Ticket/Display.html?id=26086
859
860 Imager 0.57 - 30 Apr 2007
861 ===========
862
863 This is a maintenence release fixing a security issue in Imager.
864
865  - CRITICAL: a specially crafted compressed BMP file can cause a buffer
866    overflow in malloced memory.  There will be further discussion of
867    this issue in the ticket below.
868    http://rt.cpan.org/Ticket/Display.html?id=26811
869    CVE-2007-2459  CVE-2007-2413
870    The descriptions at cve.mitre.org varied in quality, please see the
871    ticket at rt.cpan.org for a more accurate description of the issue.
872
873 Imager 0.56 - 1 Apr 2007
874 ===========
875
876  - added support for reading 16-bit/sample PGM/PPM images
877
878  - added support for writing 16-bit/sample PGM/PPM images
879
880  - improved performance of reading PBM/PGM/PPM images
881
882  - added support for writing PBM images if the image is paletted and
883    contains only black and white
884
885  - added a new make_colors value - "mono"
886
887  - switched from the svn log Changes to a manual Changes to reduce
888    noise
889
890  - new sample code - samples/flasher.pl
891
892 Bug fixes:
893
894  - CRITICAL: the "Imager" typemap entry (not used by Imager itself)
895    was returning an image object with an extra reference, this
896    resulted in a memory leak.
897    http://rt.cpan.org/Ticket/Display.html?id=24992
898
899  - fix rendering on alpha channel images for the FreeType 2.x driver
900    http://rt.cpan.org/Ticket/Display.html?id=11972
901
902  - reading bmp files now consitently handles short reads.  You can now
903    supply a parameter to treat a short read as successful and set
904    i_incomplete
905    http://rt.cpan.org/Ticket/Display.html?id=8426
906
907  - previously, reading ASCII PBM files required spaces between samples,
908    even though the format doesn't require that
909
910  - improved documentation of the unsharpmask filter (I hope)
911    http://rt.cpan.org/Ticket/Display.html?id=25531
912
913  - force flushing of the output from i_tt_dump_names() and test output
914    in t/t35ttfont.t to prevent output from being mixed up.
915    https://rt.cpan.org/Ticket/Display.html?id=24859
916
917  - rewrite a conditional expression as an if() to hopefully work around
918    a bug in the pre-4.0 GCC Apple shipped with OS X 10.4.
919    https://rt.cpan.org/Ticket/Display.html?id=25561
920
921  - avoid Data::Dumper in regops.perl to support older releases of perl
922    https://rt.cpan.org/Ticket/Display.html?id=24391
923
924 Imager 0.55 - 16 Dec 2006
925 ===========
926
927 This is primarily a bug fix release.
928
929 Note: Test::More is now a pre-requisite for Imager and is no longer bundled.
930
931 There is one new feature:
932
933  - the Win32 font driver now supports UTF8 (RT 22166)
934    http://www.cpanforum.com/threads/3276
935    http://rt.cpan.org/Ticket/Display.html?id=22166
936
937 Several bugs were fixed:
938
939  - the string() method would not output the string "0"
940    http://rt.cpan.org/Public/Bug/Display.html?id=21770
941
942  - fills.c was failing to compile on Solaris 10 (compiler unknown)
943    http://rt.cpan.org/Public/Bug/Display.html?id=21944
944
945  - the gif_disposal and gif_user_input tags weren't being read from
946    the file correctly
947    http://rt.cpan.org/Public/Bug/Display.html?id=22192
948
949  - gif.c was failing to build under MSVC
950    http://rt.cpan.org/Ticket/Display.html?id=23922
951
952  - in some cases strings passed to the string() method were treated as
953    terminated by NUL (chr 0)
954    http://rt.cpan.org/Public/Bug/Display.html?id=21770
955
956  - on "MSWin32" perl builds we now link to -lzlib instead of -lz since
957    that's the default build name for zlib on Win32.
958    http://rt.cpan.org/Ticket/Display.html?id=23064
959
960  - search $Config{incpath} for headers too, which we should have been
961    doing all along.
962
963 Win32 font driver fixes:
964
965  - the global descent value from bounding box was the wrong sign
966    http://www.cpanforum.com/threads/3276
967
968  - if the first or last glyph overflowed the left or right side of the
969    advance width they would be clipped
970
971
972 Imager 0.54 - 14 Sep 2006
973 ===========
974
975 This is primarily a feature release:
976
977  - a new qtype value 'mixing' has been added to the scale()
978    method. This is faster than 'normal', slower than 'preview'. This
979    is based on the method used by pnmscale, and seems to produce less
980    blurry results than normal.
981    http://rt.cpan.org/Public/Bug/Display.html?id=20677
982
983  - the rubthrough() method can now render onto images with an alpha
984    channel.
985    http://rt.cpan.org/Ticket/Display.html?id=20678
986
987  - the read_multi() method now falls back to calling doing a single
988    image read via the read() method and write_multi() will now fall
989    back to calling write() if a single image is supplied. This means
990    you can simply call the read_multi() or write_multi() functions
991    without having to check if the type is formatted by that method.
992    http://rt.cpan.org/Ticket/Display.html?id=19457
993    http://rt.cpan.org/Ticket/Display.html?id=19458
994
995  - the GIF loop extension can now be written. If you don't have
996    libungif/giflib 4.1.4 (or some distribution's bugfixed equivalent) you
997    should upgrade.
998    http://rt.cpan.org/Ticket/Display.html?id=21185
999
1000  - getscanline() and setscanline() can now read/write palette index
1001    based data from/to the image for paletted images, by setting type to
1002    'index'.
1003    http://rt.cpan.org/Ticket/Display.html?id=20338
1004
1005  - we no longer hassle you to disable GIF support
1006    http://rt.cpan.org/Ticket/Display.html?id=20687
1007
1008  - minor documentation fixes
1009
1010
1011 Imager 0.53 - 26 Jul 2006
1012 ===========
1013
1014 This is a bugfix release.
1015
1016 Some test code was left in a code path not covered by the test
1017 suite. A test was added to cover this code path and the test code was
1018 removed.
1019 http://rt.cpan.org/Public/Bug/Display.html?id=20705
1020
1021
1022 Imager 0.52 - 25 Jul 2006
1023 ===========
1024
1025 This is primarily a feature release, but contains a fair few bug
1026 fixes, new features:
1027
1028  - ability to read and write MS Windows ICO and CUR files
1029
1030  - you can now add file format plugins to support new file formats
1031
1032  - add POD coverage tests
1033
1034  - setcolors() and addcolors() now accept color names and so on
1035    instead of requiring Imager::Color objects.
1036    http://rt.cpan.org/Ticket/Display.html?id=20056
1037
1038  - flood_fill() can now fill to a specified border color instead of
1039    just to the area the same color as the seed.
1040    http://rt.cpan.org/Ticket/Display.html?id=19618
1041
1042
1043 Bug fixes:
1044
1045  - bounding_box for the T1 driver wasn't converting UTF8 to ascii when
1046    calculating the advance width.
1047    http://rt.cpan.org/Public/Bug/Display.html?id=20554
1048
1049  - bounding_box for the T1 driver wasn't including leading and
1050    trailing spaces in the bounding box as the other drivers did, it also
1051    produced strange results for empty strings or strings containing only
1052    spaces
1053
1054  - when reading CMYK jpeg images they were being transferred to the
1055    image object as is, producing a four channel image. It only looked ok
1056    due to an old still unfixed Photoshop bug. We now convert from the
1057    inverted CMYK that photoshop (and Corel for example) produce into RGB.
1058    http://rt.cpan.org/Ticket/Display.html?id=20416
1059
1060  - reading a CYMK TIFF would result in a 4 channel image, reading any
1061    image with more than 4 channels (eg. RGB with 2 alpha channels) would
1062    result in an error.
1063    http://rt.cpan.org/Ticket/Display.html?id=20415
1064
1065  - added /usr/local/include to the default include search path, since
1066    we were already searching /usr/local/lib for libraries.
1067
1068 And various minor fixes and documentation updates.
1069
1070
1071 Imager 0.51 - 23 Apr 2006
1072 ===========
1073
1074  - fix a validation bug when processing JPEG EXIF data that can cause
1075    a crash
1076    http://rt.cpan.org/Public/Bug/Display.html?id=18496
1077
1078  - fix mis-processing of the src_maxx and src_maxy parameters of the
1079    paste() method
1080    http://rt.cpan.org/Public/Bug/Display.html?id=18712
1081
1082  - fix a problem in Imager's "smart" handling of the color parameter
1083    to various methods.
1084    http://rt.cpan.org/Public/Bug/Display.html?id=18561
1085
1086
1087 Imager 0.50 - 29 Mar 2006
1088 ===========
1089
1090  - CRITICAL: fixes a segmentation fault from attempting to write a 2
1091    or 4 channel image to jpeg or a 2 channel image to tga where the
1092    output is an in-memeory buffer.
1093    http://rt.cpan.org/Public/Bug/Display.html?id=18397
1094
1095  - fixes an incorrect pointer parameter in the PNG code
1096    http://rt.cpan.org/Public/Bug/Display.html?id=18051
1097
1098  - skip Inline::C tests when building in a directory with spaces
1099    http://rt.cpan.org/Public/Bug/Display.html?id=18049