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