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