]> git.imager.perl.org - imager.git/blob - Changes
[rt #70388] debug mymalloc() no longer builds a string, just stores the pointer
[imager.git] / Changes
1 Imager release history.  Older releases can be found in Changes.old
2
3  - getpixel(..., type => "float") and the API i_gpixf() have been
4    broken on paletted images since they were implemented.
5    https://rt.cpan.org/Ticket/Display.html?id=75258
6
7  - links in the METHOD INDEX now point at the method documentation
8    rather than the heading you can find them under.
9    https://rt.cpan.org/Ticket/Display.html?id=71495
10
11  - Imager (and the bundled dynamic modules) no longer fallback to
12    using DynaLoader if loading via XSLoader fails.
13    For the bundled modules this could hide useful error messages.
14    https://rt.cpan.org/Ticket/Display.html?id=75560
15
16  - IM_DEBUG_MALLOC mymalloc() no longer sn?printfs() a string to a
17    buffer in the array of allocations, but just stores the filename
18    pointer and line number.
19    https://rt.cpan.org/Ticket/Display.html?id=70388
20
21 Imager 0.88 - 22 Feb 2012
22 ===========
23
24  - describe how to build libgif etc on OS X in such a way as to be
25    compatible with a fat binary perl (such as the system perl), in
26    README.
27    https://rt.cpan.org/Ticket/Display.html?id=73371
28
29  - update the change notes for 0.77_01 to indicate that libungif
30    support was removed.
31
32  - add some other imaging modules to SEE ALSO
33    https://rt.cpan.org/Ticket/Display.html?id=73906
34
35  - note that the generator of the apparently non-DFSG-free postscript
36    in MMOne.pfb is a Debian package.
37
38  - setsamples() is now a true complement to getsamples() - it can
39    write 8-bit or floating point samples from a scalar or array
40    reference.  This adds i_psamp() and i_psampf() to the C level API.
41
42  - the XS interfaces to i_gsamp(), i_gsampf() and i_gsamp_bits() have
43    changed to make better use of the typemap, but these aren't part of
44    the perl level API anyway.  There were no changes to the C level
45    interfaces to these functions.
46
47  - getpixel() and setpixel() now accept a mix of scalar and array
48    references for the x and y parameters, and unequal array lengths is
49    no longer an error.
50    https://rt.cpan.org/Ticket/Display.html?id=73697
51
52 Bug fixes:
53
54  - correctly calculate the size of a rotated image
55    https://rt.cpan.org/Ticket/Display.html?id=69261
56
57  - fix incorrect rounding of color values for matrix_transform() and
58    rotate().
59    https://rt.cpan.org/Ticket/Display.html?id=69261
60
61  - Win32 text output is now done in normal combine mode, the alpha
62    component of the color is now significant.
63    https://rt.cpan.org/Ticket/Display.html?id=70014
64
65  - remove long unused gif case from read()
66    https://rt.cpan.org/Ticket/Display.html?id=69244 (partial)
67
68  - the getsamples() target parameter was being treated as a hashref
69    when it's meant to be an array reference.
70    https://rt.cpan.org/Ticket/Display.html?id=74882
71
72  - getpixel() and setpixel() now returns an empty list when invalid
73    parameters are supplied.
74    Invalid values for type now result in an error for getpixel().
75    https://rt.cpan.org/Ticket/Display.html?id=73697
76
77 Imager 0.87 - 03 Jan 2012
78 ===========
79
80  - document the return value of the filter() method.
81    https://rt.cpan.org/Ticket/Display.html?id=72369
82
83  - document i_gsamp_bits() and i_psamp_bits().
84    https://rt.cpan.org/Ticket/Display.html?id=68815
85
86  - properly increment the Imager::Matrix2d $VERSION.
87
88  - actually include the Imager::Test tests in the dist
89
90  - correctly read and write 256x256 pixel ICO files
91    https://rt.cpan.org/Ticket/Display.html?id=69599
92
93  - make the error message from read() or read_multi() when they can't
94    identify the file type match reality.
95    https://rt.cpan.org/Ticket/Display.html?id=72475
96
97  - read() now uses $FORMATGUESS if it can't determine the file type
98    based on the file header, to match read_multi().
99
100  - re-work and add tests for def_guess_type().  def_guess_type() no
101    longer returns any random file extension as the file type.
102
103  - add gray4, gray16 and gray as presets for make_colors.
104    https://rt.cpan.org/Ticket/Display.html?id=67911
105
106  - add make_palette() method that produces a palette from one or more
107    images.
108
109  - fix the Imager dependency for the separately distributed font
110    drivers.
111    https://rt.cpan.org/Ticket/Display.html?id=72643
112
113  - fix i_render_color() to properly draw in "normal" mode - ie. when
114    writing to a 1 or 3 channel image the second or fourth channel of
115    the source color was being ignored, it is now significant.
116    https://rt.cpan.org/Ticket/Display.html?id=71564
117
118 Imager 0.86 - 31 Oct 2011
119 ===========
120
121  - improve error reporting for W32 tests
122
123 Imager 0.85_02 - 24 Oct 2011
124 ==============
125
126 Bug fixes:
127
128  - eliminate unused i_gif_opts type (clean-up)
129    https://rt.cpan.org/Ticket/Display.html?id=69245
130
131  - fix combine=0 fill color anti-aliasing on the double/sample path
132    https://rt.cpan.org/Ticket/Display.html?id=71309
133
134  - make default text color non-transparent
135    https://rt.cpan.org/Ticket/Display.html?id=71469
136
137  - apply the last of the Debian unforwarded spelling fixes
138    https://rt.cpan.org/Ticket/Display.html?id=70656
139
140  - the log() method used its message parameter as a C level format
141    string.
142    https://rt.cpan.org/Ticket/Display.html?id=71653
143
144  - provide our own STRLEN typemap entry for older perls.
145    https://rt.cpan.org/Ticket/Display.html?id=71641
146
147  - add extra ppport.h configuration to support older perls.
148
149  - depend on Scalar::Util, since we use it and older perls don't have
150    it.
151
152  - add overloaded eq to Imager::Matrix2d, since older perls don't seem
153    to synthesize it from overloaded "".
154
155   - use T1_StrError() for error messages on modern libt1
156     https://rt.cpan.org/Ticket/Display.html?id=69879
157
158  - actually load the font rather than just adding it to the catalog on
159    creation.
160
161  - Imager::Font->new now produces better error messages for the T1
162    engine.
163
164  - the font has_chars() method now returns perl's true and false
165    values in list context rather than integers, which should be more
166    efficient.
167    https://rt.cpan.org/Ticket/Display.html?id=69158
168
169  - the btm data structure used by the flood_fill code is now
170    initialized more efficiently.
171    https://rt.cpan.org/Ticket/Display.html?id=68994
172
173  - updated the Thanks list in README
174    https://rt.cpan.org/Ticket/Display.html?id=71607
175
176  - check there's at least one coefficient for the convolution filter
177    https://rt.cpan.org/Ticket/Display.html?id=68993
178
179  - make the APIRef synopsis ordering consistent, older versions of
180    perl could order it differently.
181    https://rt.cpan.org/Ticket/Display.html?id=71675
182
183  - we rely on Config.pm's d_vsnprintf as to whether we use
184    vsnprintf/snprintf, which is defined in the Win32 Config.pm even
185    though it only has _ prefixed versions of these.  Define our own
186    prefixed names on Win32.
187    https://rt.cpan.org/Ticket/Display.html?id=71642
188
189  - fix library detection with MSVC
190
191  - search a few more library directories, so EU::MM doesn't discard
192    them.  Hopefully fixes:
193    https://rt.cpan.org/Ticket/Display.html?id=71643
194
195 Imager 0.85_01 - 10 Oct 2011
196 ==============
197
198  - add simple tests for the Imager::Test test_image generators
199
200  - io_glue I/O buffering re-work:
201
202    - reorganize io_glue to do it's own buffering by default
203
204    - the unbuffered functions are available as i_io_raw_read() (or
205      raw_read() from perl) etc but are not recommended for typical
206      use.
207
208    - use the new i_io_peekn() when checking for file magic to avoid
209      seek, allowing Imager to detect the file type and read the file
210      from an unseekable stream (for formats that don't use random
211      access)
212
213    - added several new I/O layer API functions.
214
215    - fix the TGA performance problem, most noticably on Win32
216      https://rt.cpan.org/Ticket/Display.html?id=70037
217
218    - TIFF now uses wrapper functions of the correct types to avoid casts
219      https://rt.cpan.org/Ticket/Display.html?id=69912
220
221    - the callback IO object did its own buffering, controlled by the
222      maxbuffer parameter supplied to the read() and write() methods.
223      This buffering has been removed, to avoid redundancy with the
224      common io_glue buffering.  This also avoids a bug in that code
225      which could rarely pass a zero length to the read callback and
226      then panic about the result.
227
228    - the callback IO object now tests the result of calling the close
229      callback, which should return true for success.
230
231    - the PNM reader did its own buffering.  This buffering has been
232      removed to avoid redundancy with the common io_glue buffering.
233
234    - previously the read handlers for fd and callback I/O layers would
235      call the underlying interface (POSIX read or your supplied callback)
236      until it filled the buffer.  It now only makes one call.
237
238    - added public constructors for I/O layer objects (see Imager::IO)
239
240    - all core file handlers now use the i_io_foo() wrappers to gain
241      access to buffered I/O rather than calling the I/O layer
242      callbacks directly.
243
244    - all core file handlers now check for error on close.
245
246    - Backward compatibility: if you hava custom file handlers, you can
247      use i_io_write() etc since they're available as macros in older
248      versions of Imager.
249
250    - eliminate the final remnants of io_glue_commit_types().
251
252    - bump IMAGER_API_VERSION, since the above may break assumptions.
253
254  - removed the long unused i_gen_reader() and i_gen_writer() utility
255    functions.
256
257 Imager 0.85 - 29 Aug 2011
258 ===========
259
260 The main changes in the release versus 0.84 are:
261
262  - on 64-bit systems, 64-bit types are consistently used for image
263    dimensions and co-ordinated, and for memory block sizes.
264
265  - handle IFD loops in TIFF files correctly.  Previously this would
266    lead to an infinite loop.
267
268 Bug fixes:
269
270  - fix the link in the getheight() entry in the method index
271
272 Imager 0.84_02 - 22 Aug 2011
273 ==============
274
275 Development release, this will become 0.85 if CPAN testers is
276 favourable.
277
278 Bug fixes:
279
280  - the image file limits set by set_file_limits() weren't being
281    checked when reading TIFF files.
282    https://rt.cpan.org/Ticket/Display.html?id=69915
283
284  - Provide more information about file format module load errors on a
285    failed image file read() or write().
286    https://rt.cpan.org/Ticket/Display.html?id=69194
287
288  - use TIFFReadDirectory() instead of TIFFSetDirectory() to iterate
289    through TIFF images, since it checks for IFD loops.
290    https://rt.cpan.org/Ticket/Display.html?id=69914
291
292  - don't leak memory when out of range palette indexes are supplied to
293    setscanline().
294    https://rt.cpan.org/Ticket/Display.html?id=69242
295
296  - require a later version of CPAN::Meta to ensure JSON::PP and
297    CPAN::Meta::YAML are available.
298    https://rt.cpan.org/Ticket/Display.html?id=69008
299
300  - hoist the per-line calculations for the flines implementations, and
301    modernize the tests a bit.
302    https://rt.cpan.org/Ticket/Display.html?id=70126
303
304  - detect snprintf()/vsnprintf() (cheat by using Config.pm) and use
305    them when available.
306    https://rt.cpan.org/Ticket/Display.html?id=69147
307
308  - if t1lib failed to reinitialize it would be left as marked
309    initialized.
310    https://rt.cpan.org/Ticket/Display.html?id=69877
311
312  - update the bundled (and still modified) Devel::CheckLib
313    https://rt.cpan.org/Ticket/Display.html?id=69170
314
315 Imager 0.84_01 - 8 Aug 2011
316 ==============
317
318 Development release as a sanity check for the types re-work.
319
320 Massive types re-work:
321
322  - the type used internally for pixel co-ordinates and image sizes is
323    now 64-bit on 64-bit platforms (at least sane ones).
324
325  - size_t is now used consistently for memory block sizes.
326
327  - since this changes the binary interface, the Imager API version has
328    been incremented.  Any module that uses the API will need to be
329    rebuilt.  In most cases that will be enough, but calls to any APIs
330    that take a pointer to image sizes may need source changes.
331
332  - you should be able to create very large images on 64-bit systems,
333    if you have enough memory.  Successfully created a 32768 x 49192 x
334    3 channel image, filled with a tiled image and scaled it.  The
335    unscaled image was also successfully saved to a JPEG.
336
337  - check the image size before attempting to write BMP, GIF, JPEG,
338    PNG, SGI, TGA, TIFF images.
339
340  - correctly handle reading TGA images over 32767 pixels wide or tall.
341
342 Incidental changes:
343
344  - the gif_left and gif_top tags are now clamped to non-negative
345    values when writing a GIF image.
346
347  - removed dead callback read/write code
348
349 The default maximum memory size when reading files is now 1G.
350
351 Imager 0.84 - 20 Jun 2011
352 ===========
353
354  - Imager no longer inherits from Exporter (unless you're running an
355    old, old perl.
356
357  - Imager can now write progressive JPEGs (it could always read them).
358    https://rt.cpan.org/Ticket/Display.html?id=68691
359
360 Bug fixes:
361
362  - re-work, document and test Imager's logging facility.
363    https://rt.cpan.org/Ticket/Display.html?id=65227
364
365  - fix META.yml testing and the generated META.yml
366    https://rt.cpan.org/Ticket/Display.html?id=65235
367
368  - test and add error reporting to to_*() family methods
369
370  - add to_rgb_double() method.
371    https://rt.cpan.org/Ticket/Display.html?id=65101
372
373  - Imager no longer exports anything by default
374    https://rt.cpan.org/Ticket/Display.html?id=65228
375
376  - convert colors to grayscale if the supplied (or generated) palette
377    contains only grays when performing error diffusion color
378    translation.
379    https://rt.cpan.org/Ticket/Display.html?id=68508
380
381  - writing a paletted image to GIF wouldn't always use the colors
382    supplied (or generated, eg. via make_colors => "mono"), which was
383    confusing at best.
384    https://rt.cpan.org/Ticket/Display.html?id=67912
385
386  - replace (imager|tony)@imager.perl.org in the doc, since I don't
387    plan to continue receiving mail at that address.
388    https://rt.cpan.org/Ticket/Display.html?id=68591
389
390 Imager 0.83 - 21 May 2011
391 ===========
392
393 Bug fixes:
394
395  - diag() the error message on failure for some TIFF tests that are
396    failing on a Solaris smoker.
397    http://www.cpantesters.org/cpan/report/6396db1e-8090-11e0-9682-112b785ebe45
398
399 Imager 0.82_01 - 17 May 2011
400 ==============
401
402 Dev release, in case the compose tests are too sensitive.
403
404 Bug fixes:
405
406  - Imager::Font::T1 incorrectly checked for absolute filename under
407    Win32.  Thanks to kmx for the report and fix.
408    https://rt.cpan.org/Ticket/Display.html?id=67963
409
410  - compose() with the target, source or mask position off the top or
411    left of the target image didn't clip the source image correctly.
412    https://rt.cpan.org/Ticket/Display.html?id=67220
413
414  - compose() now returns a useful error message on a non-positive
415    opacity.
416
417  - compose.im now at 100% test coverage. (As opposed to, umm, much,
418    much less.)
419
420 Imager 0.82 - 14 Mar 2011
421 ===========
422
423 Bug fixes:
424
425  - eliminate calls to i_has_format() from the test suite, since it's
426    no longer a useful way to check for file format support.  Eliminate
427    i_has_format() from the functions exposed via XS.
428    https://rt.cpan.org/Ticket/Display.html?id=65863
429
430  - eliminate calls to note(), which isn't in the (very old) version of
431    Test::More we have as a pre-requisite.  note() is modern enough
432    that I don't feel a need to require a Test::More upgrade for it.
433    https://rt.cpan.org/Ticket/Display.html?id=65864
434
435  - skip the threads tests on Test::More 2.00_*
436    https://rt.cpan.org/Ticket/Display.html?id=65812
437
438  - add an (unshipped) test to check Imager's internal POD links
439    https://rt.cpan.org/Ticket/Display.html?id=65749
440
441  - improve the library detection summary
442    https://rt.cpan.org/Ticket/Display.html?id=9675
443
444  - increase the version of Imager::Font::Type1 so that upgrades don't
445    downgrade the version in this file.
446    https://rt.cpan.org/Ticket/Display.html?id=66250
447
448  - if we see an -rpath (or -R) option in $Config{lddlflags} supply
449    that option for the directories that would normally go in
450    LD_RUN_PATH.  Typically an explicit -rpath overrides LD_RUN_PATH.
451    https://rt.cpan.org/Ticket/Display.html?id=65955
452
453 Imager 0.81 - 14 Feb 2011
454 ===========
455
456  - added coverage tests for masked images (maskimg.c @100% test coverage)
457
458  - add hsv() method to Imager::Color
459    Thanks to Leolo (Philip Gwyn)
460    https://rt.cpan.org/Ticket/Display.html?id=65385
461
462  - split libt1 Type 1 font support into a sub-module
463    https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
464
465  - add a preload() class method for use in forking servers, and to
466    work around limitations in PAR.
467    https://rt.cpan.org/Ticket/Display.html?id=65665
468
469 Bug fixes:
470
471  - paletted writes to a masked image are now masked correctly.
472    Revealed by new coverage tests.
473
474  - update the filter plugin documentation.
475    https://rt.cpan.org/Ticket/Display.html?id=56513
476
477  - add the matrix() method to Imager::Matrix2d to allow creation of a
478    matrix with specified co-efficients.  You can now multiple an
479    Imager::Matrix2d object by a 9 element array ref or a number.
480    https://rt.cpan.org/Ticket/Display.html?id=29938
481
482  - really fix loading TTF fonts with FT2 when FT1 isn't available.
483    Thanks to Leolo (Philip Gwyn)
484    https://rt.cpan.org/Ticket/Display.html?id=65386
485    https://rt.cpan.org/Ticket/Display.html?id=62855
486
487  - make sure each test script that needs testout/ creates it.
488    https://rt.cpan.org/Ticket/Display.html?id=65088
489
490  - handle a slightly different warning from libtiff 4.x
491    https://rt.cpan.org/Ticket/Display.html?id=65268
492
493  - the sat transform2() op returned an incorrect saturation.
494    https://rt.cpan.org/Ticket/Display.html?id=65391
495
496 Imager 0.80 - 17 Jan 2011
497 ===========
498
499  - added coverage tests for Imager::Fountain and Imager::Color::Float
500
501  - Imager is now maintained in git
502    http://git.imager.perl.org/imager.git
503    git://git.imager.perl.org/imager.git
504
505 Bug fixes:
506
507  - images with an translucent alpha channel were not scaled correctly
508    by the default (qtype=normal) scaling method.
509    https://rt.cpan.org/Public/Bug/Display.html?id=63922
510
511  - Imager::Color::Float now translates "#FFFFFF" to white instead of
512    just a little darker.
513
514  - make the default color map build algorithm "mediancut".  This
515    changes the default color map builder for writing GIFs back to what
516    it was in 0.77, reverting a performance regression.
517    https://rt.cpan.org/Ticket/Display.html?id=64785
518
519  - handle failure to create a masked image correctly
520
521 Imager 0.79 - 10 Dec 2010
522 ===========
523
524  - add Imager::Test to the POD coverage tests and document the missing
525    functions.
526
527  - the convert() method now optimizes the case where all output
528    channels are either 0, sourced from a single input channel or 1.
529    This significantly speeds up presets like "addalpha", "green".
530    https://rt.cpan.org/Ticket/Display.html?id=51254
531
532  - add wiggle.pl sample, as suggested by Dan Oppenheim.
533
534  - add the combine() method to combine channels from multiple source
535    images into a new image
536    https://rt.cpan.org/Ticket/Display.html?id=11872
537
538 Bug fixes:
539
540  - treat the co-efficients for convert() as doubles instead of floats.
541
542  - If a higher (earlier) priority font handler failed to load, that
543    would crash preventing loading of later font handlers.
544    https://rt.cpan.org/Ticket/Display.html?id=62855
545
546  - parse defines from the options returned by pkg-config --cflags
547    https://rt.cpan.org/Ticket/Display.html?id=63223
548
549  - a regen of the MANIFEST revealed that GIF and FT2 tests weren't
550    included in the tarball.  They are now included.
551
552 Imager 0.78 - 4 Oct 2010
553 ===========
554
555 Bug fixes:
556
557  - don't access deprecated members of the png_structp.
558    https://rt.cpan.org/Ticket/Display.html?id=60242
559
560  - document that using color objects is faster than supplying colors
561    by name, etc.
562    https://rt.cpan.org/Ticket/Display.html?id=61047
563
564  - Imager::Probe now accepts array references for incpath and libpath.
565    https://rt.cpan.org/Ticket/Display.html?id=60244
566
567 Imager 0.77_02 - 27 Sep 2010
568 ==============
569
570  - moved Win32, FreeType 2 font support into sub-modules.
571    https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
572    Uses Imager::Probe now.
573    https://rt.cpan.org/Public/Bug/Display.html?id=61328
574
575  - tested successfully with jpeg-8b
576    https://rt.cpan.org/Ticket/Display.html?id=60221
577
578 Bug fixes:
579
580  - from _01: look for missing file support test files in the right
581    places.
582
583  - flood_fill() wouldn't fill the right side of a single scan-line
584    fill area.
585    Thanks to Nicolas Roggli for reporting this.
586
587  - flood_fill wouldn't fill to the left edge of the image if the
588    starting line didn't reach the left edge.
589    Thanks to Nicolas Roggli for reporting this.
590
591 Imager 0.77_01 - 13 Sep 2010
592 ==============
593
594  - add each library-directory/pkgconfig/ to the pkg-config search path
595    in Imager::Probe.
596    Thanks to Justin Davis.
597    https://rt.cpan.org/Ticket/Display.html?id=60491
598
599  - moved GIF, TIFF, JPEG file handling code into sub-modules in
600    preparation for separate distribution.
601    https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
602
603    Note: this removed support for libungif from Imager.
604
605  - optimize filled box drawing (color, not fill)
606
607 Bug fixes:
608
609  - Imager::Probe was calling ExtUtils::Liblist to initialize
610    LD_RUN_PATH supplying an undefined value rather than the found
611    directory.  Thanks to Justin Davis.
612    https://rt.cpan.org/Ticket/Display.html?id=60491
613
614  - only prepend ./ to font filenames when passing them to T1Lib and
615    then only when it would use its search mechanisms.
616    https://rt.cpan.org/Ticket/Display.html?id=60509
617
618  - fix the cache check for the X rgb.txt loader.  This is typically
619    used for color translation on Unix-like systems, and the fix
620    improves performance of supplying colors by name by about 80 times.
621    Test code that managed 3400 10x10 pixel boxes/second sped up to
622    25700 boxes/second.
623
624  - clarify that Imager doesn't write EXIF metadata to images.
625    https://rt.cpan.org/Ticket/Display.html?id=60637
626
627  - Imager::Probe can now search subdirectories under its include path.
628    Used by the PNG Makefile.PL to find headers and libraries when they
629    aren't in the base directory, as in cygwin.
630    https://rt.cpan.org/Ticket/Display.html?id=60635
631
632 Imager 0.77 - 11 Aug 2010
633 ===========
634
635 I don't want Imager::File::PNG indexed as part of Imager, but forgot
636 to update the META.yml before updating the version.
637
638  - don't index Imager::File::PNG as part of Imager
639
640  - add resources to META.yml
641
642 Imager 0.76 - not released
643 ===========
644
645 Bug fixes:
646
647  - the align_string() method would ignore a string of "0" due to a
648    mis-use of C< ||= >.
649    Thanks to Maurice Height for reporting this.
650    https://rt.cpan.org/Ticket/Display.html?id=60199
651
652 Imager 0.75_03 - 09 Aug 2010
653 ==============
654
655 Bug fixes:
656
657  - read_types() and write_types() would include png when it wasn't
658    available due to a problem with the %formats tie
659
660  - handle dependent libraries correctly (eg -lpng requiring -lz) in
661    the code run phase of library probing.
662
663 Imager 0.75_02 - 07 Aug 2010
664 ==============
665
666 Bug fixes:
667
668  - add file missing from MANIFEST, which was causing TIFF failures.
669
670 Imager 0.75_01 - 06 Aug 2010
671 ==============
672
673 Test release for the new PNG probe.
674
675  - added the ability to read multiple-image PNM files.
676    Note that unlike the pbm/pgm/ppm specification this accepts mixed
677    format files and allows white space padding between files.
678    Thanks to Philip Gwyn (Leolo) for this patch.
679
680  - moved the PNG file handling code into a sub-module in preparation
681    for separate distribution.
682    https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
683    Also helps avoid complications from -I/-L compile/link options from
684    other libraries.
685
686 Bugs:
687
688  - Imager->new(data => $data) didn't try to process image file data in
689    $data
690    https://rt.cpan.org/Ticket/Display.html?id=58761
691
692  - t/t50basicoo.t no longer depends on the other tests to generate its 
693    input files.
694    https://rt.cpan.org/Ticket/Display.html?id=9798
695    Also, it wasn't testing pnm (pnm vs ppm mix-up)
696
697  - update the documentation of hardinvert to match the change in 0.62.
698    https://rt.cpan.org/Ticket/Display.html?id=59785
699
700  - added hardinvertall filter which also inverts the alpha channel
701    (sorry for the mess)
702
703  - when probing for TIFF, set LD_RUN_PATH just as the Makefile does so
704    the probe can find the library for the test run.
705    https://rt.cpan.org/Ticket/Display.html?id=57518
706
707 Imager 0.75 - 20 Jun 2010
708 ===========
709
710  - use PERL_NO_GET_CONTEXT to slightly improve performance on threaded
711    perls (not measured)
712
713 Bugs:
714
715  - an opacity fill based on a fountain fill would segfault when
716    filling an 8-bit/sample image.
717
718  - merge thickline branch polygon fix
719    https://rt.cpan.org/Ticket/Display.html?id=43518
720
721 Imager 0.74 - 7 May 2010
722 ===========
723
724 Bug fixes:
725
726  - read_multi() didn't handle a missing file format library correctly,
727    aborting on failing to call i_readgif_multi_wiol() or
728    i_readtiff_multi_wiol().
729
730  - fix spelling errors patched by Debian
731    http://svn.debian.org/viewsvn/pkg-perl/trunk/libimager-perl/debian/patches/spelling.patch?revision=54839&view=markup
732
733  - add an (unshipped) author test to spellcheck Imager's POD.
734
735  - update the TIFF file format documentation
736    https://rt.cpan.org/Ticket/Display.html?id=56510
737
738  - lib/Imager/IO.pod was written almost 4 years ago but never shipped.
739
740 Imager 0.73 - 15 Mar 2010
741 ===========
742
743  - implement outline circles, both anti-aliased and not
744    https://rt.cpan.org/Ticket/Display.html?id=19755
745
746  - a combine => "none" fill to a 1 or 3 channel image would produce
747    the incorrect colour.
748
749 Imager 0.72 - 09 Dec 2009
750 ===========
751
752 Bump version for release, since 0.71_03 is stable with CPAN testers.
753
754 Imager 0.71_03 - 5 Dec 2009
755 ==============
756
757  - further adjust the threads test so it only performs the tests on
758    perls where it's expected to work, and only if the threads module
759    can be loaded.
760
761 Imager 0.71_02 - 1 Dec 2009
762 ==============
763
764  - adjust the way we load the threads module for the threads test so
765    it works with non-threaded perls
766
767 Imager 0.71_01 - 30 Nov 2009
768 ===========
769
770 Bug fixes:
771
772  - use scanline oriented operations to flip images instead of pixel
773    operations
774    https://rt.cpan.org/Ticket/Display.html?id=39278
775
776  - use double/sample operations to flip large sample images instead of
777    8-bit sample operations.
778    https://rt.cpan.org/Ticket/Display.html?id=39280
779
780  - fix POD nits
781    https://rt.cpan.org/Ticket/Display.html?id=51874
782
783  - prevent double-frees when someone creates Imager objects and then
784    creates a thread.  Note: this just handles some simple cases,
785    Imager doesn't support perl threads, and isn't likely to.
786    https://rt.cpan.org/Ticket/Display.html?id=52268
787
788 Imager 0.71 - 16 Nov 2009
789 ===========
790
791  - add the opacity fill type - an adaptor that modifies the opacity of
792    another fill.
793
794 Bug fixes:
795
796  - the conv filter now enforces that the sum of the coefficients is
797    non-zero.  Also, rather than skipping pixels off the edge off the
798    edge of the image, the closest edge pixel is used.  Previously
799    dividing by the zero sum of coefficients could cause invalid
800    results or runtime exceptions.
801    Thanks to David Cantrell's Alpha-NetBSD CPAN test box for revealing
802    this bug.
803
804 Imager 0.70 - 21 Sep 2009
805 ===========
806
807 Bug fixes:
808
809  - release image row and comments memory on all error returns in gif
810    reader
811
812  - handle zero length extensions, previously this would cause a null
813    pointer dereference
814    Thanks to Krzysztof Wojtaś for the test data and fix for this.
815
816  - an integer division meant that preview scaling to below 1 pixel
817    wide or high (which isn't too useful anyway) was calculating using
818    NaNs on most platforms, and causing an exception on others.
819    Thanks to David Cantrell for producing a backtrace of the crash on
820    his Alpha-NetBSD CPAN test box which made it possible to track this
821    down.
822
823 Imager 0.69 - 08 Sep 2009
824 ===========
825
826 Bug fixes:
827
828  - broken test fix - was attempting to call a function skip_all, when
829    that should be a parameter to plan().
830
831  - briefly document apidocs.perl, the tool used to build
832    Imager::APIRef and make some minor enhancements
833
834  - various minor documentation enhancements and fixes.
835
836 Imager 0.68 - 07 Sep 2009
837 ===========
838
839  - Imager->new(file => $filename) and other similar incantations will
840    load the given file.
841    https://rt.cpan.org/Ticket/Display.html?id=48261
842
843 Bug fixes:
844
845  - avoid using CHECK as a label in Imager::Test
846    http://nntp.x.perl.org/group/perl.cpan.testers/5220921
847
848  - re-work most image file test files that require a library into
849    separate library present/not present files to remove stupidly long
850    conditionals
851
852  - don't treat rubthrough() outside the bounds of the target image as
853    an error.
854    http://nntp.x.perl.org/group/perl.cpan.testers/5185716
855
856 Imager 0.67_01 - 02 Sep 2009
857 ==============
858
859 Bug fixes:
860
861  - correct documentation of default of raw image interleave read
862    parameter
863    https://rt.cpan.org/Ticket/Display.html?id=42074
864
865  - add raw_ prefix to raw read parameters, though the original names
866    still work.
867
868  - fail the read if an invalid raw_interleave parameter is supplied
869
870  - warn if no interleave or raw_interleave parameter is supplied,
871    since the documented default was wrong, and incompatible with the
872    write format
873
874  - for reading raw images, if raw_storechannels > raw_datachannels,
875    set the extra channels in the image to 0
876
877  - when probing for executables like freetype-config, search for .bat
878    and .cmd on MSWin32, as well as .exe.
879    https://rt.cpan.org/Ticket/Display.html?id=49275
880
881  - re-work the external libraries section of README:
882    - list Debian and Redhat package names for each library
883    - reformatting
884    - update URLs
885
886  - use the new EU::MM META_MERGE facility instead of generating
887    META.yml from scratch
888    https://rt.cpan.org/Ticket/Display.html?id=47888
889
890  - use Devel::CheckLib (bundled, modified) to check which release of
891    libtiff is installed and reject 3.9.0
892    http://bugzilla.maptools.org/show_bug.cgi?id=2088
893    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=543079
894
895 Imager 0.67 - 12 Dec 2008
896 ===========
897
898 Bug fixes:
899
900  - fix a packaging error
901
902 Imager 0.66 - 12 Dec 2008
903 ===========
904
905  - 24-bit color .ICO/.CUR files can now be read.
906
907 Bug fixes:
908
909  - an optimization skipping 0 src alpha values could cause the
910    rubthrough() to read past the end of a buffer.
911    http://www.nntp.perl.org/group/perl.cpan.testers/2008/05/msg1509184.html
912
913  - corrected a reference leak where writing GIFs would leak memory.
914    This could also happen calling to_paletted().
915    Also documented the underlying long existing feature where the
916    colors parameter is filled with the generated color table and added
917    tests for it.
918    http://rt.cpan.org/Ticket/Display.html?id=41028
919
920  - write out the image size in bytes field of a BMP correctly.
921    http://rt.cpan.org/Ticket/Display.html?id=41406
922
923  - add limited tests for Imager::ExtUtils
924
925  - make Imager::ExtUtils->includes use an absolute path, since
926    a relative path could cause failures using Inline::C.
927    http://rt.cpan.org/Ticket/Display.html?id=37353
928
929  - re-arrange the POD for Imager::Font::BBox:
930    - mark total_width(), pos_width(), end_offset() obsolete, since
931      they're mostly for backwards compatibility
932    - group width methods and height methods
933    https://rt.cpan.org/Ticket/Display.html?id=39999
934
935 Imager 0.65 - 20 May 2008
936 ===========
937
938 Bug fixes:
939
940  - In some cases when an error occurs reading those parts of a JPEG
941    file after the image the scan-line buffer could be freed a second
942    time.  In cases where the the error occured while reading the image
943    data it's possible that the buffer could have leaked.
944    Thanks to Gabriel Vasseur for reporting this and help in tracking
945    it down.
946
947  - the gif_screen_height tag was overriding the screen width and being
948    ignored for the screen height when present.
949    https://rt.cpan.org/Public/Bug/Display.html?id=35568
950
951 Imager 0.64 - 23 April 2008
952 ===========
953
954 This is a bug fix release.  This includes a fix for a possible
955 security issue.
956
957 Bug fixes:
958
959  - Possible security issue: The floating point sample path for image
960    based fills had a buffer overflow.  This would overwrite the end of
961    a malloc()ed buffer with double precision floats.
962    http://rt.cpan.org/Ticket/Display.html?id=35324
963    CVE-2008-1928
964
965  - check that the result of fileno($fh) is defined rather than simply
966    true when read() or write() is supplied with an fh parameter.
967    http://rt.cpan.org/Ticket/Display.html?id=35139
968
969  - i_scale_axis() wasn't checking the result of i_img_new_ch()
970    resulting in a SIGSEGV when attempting to scale an image to a size
971    too large to fit in memory.  This is a NULL pointer access issue,
972    not a buffer overflow.
973    Added a check for the failure.
974    scale_calculate() (and hence scale()) will now fail if any of the
975    scale size parameters are a reference.
976    http://rt.cpan.org/Ticket/Display.html?id=35172
977
978  - Regression: filling a greyscale image with a hatch used the wrong
979    color channels from the supplied fg/bg colors.
980    https://rt.cpan.org/Ticket/Display.html?id=35278
981
982  - fixed a related problem for image fills.
983
984 Imager 0.63 - 7 April 2008
985 ===========
986
987 This release primarily contains changes to improve ease of use -
988 rather than you having to convert images to the appropriate number of
989 channels, Imager handles it internally.  How to handle drawing colors
990 and the default combine mode is a thornier problem left for some other
991 release.
992
993  - the font libraries are now only initialized when needed.
994    http://rt.cpan.org/Ticket/Display.html?id=28825
995
996  - moved the imtoc.perl code into Imager::Preprocess
997
998  - paste() and rubthrough() now adapt the source image data to the
999    destination, so you can now safely paste/rubthrough from greyscale
1000    images to color images or back, or from alpha channel images to
1001    noalpha channels or back.
1002    https://rt.cpan.org/Ticket/Display.html?id=30908
1003
1004  - rubthrough() now falls back to pasting when the source doesn't have
1005    an alpha channel.  This effectively treats the source as having a
1006    max alpha channel, the right thing to do.
1007    http://rt.cpan.org/Ticket/Display.html?id=29944
1008
1009  - re-worked most of the area filling code to use a common set of
1010    functions when filling.
1011    Corrected normal combine mode.
1012    Rewrote most of the combine modes to match the way the SVG draft
1013    defines them with respect to a translucent source and destination.
1014    Added tests for translucent source and destination.
1015    Added tests to check 8-bit/sample and double/sample combines work
1016    similarly.
1017    https://rt.cpan.org/Ticket/Display.html?id=29879
1018
1019  - writing a 2 or 4 channel image to a JPEG file will now write that
1020    image as if composited against a background, black by default,
1021    overridable with the i_background tag/parameter.
1022    https://rt.cpan.org/Ticket/Display.html?id=29876
1023
1024  - writing a 2 or 4 channel image to a PGM/PPM file will now write
1025    that image as if composited against a background, black by default,
1026    overridable with the i_background tag/parameter.
1027    http://rt.cpan.org/Ticket/Display.html?id=30074
1028
1029  - writing a 2 or 4 channel image to a BMP file will now write that
1030    image as if composited against a background, black by default,
1031    overridable with the i_background tag/parameter.
1032    http://rt.cpan.org/Ticket/Display.html?id=30075
1033
1034 Bug fixes:
1035
1036  - Imager::Matrix2d->translate() now only requires one of the x or y
1037    parameters.
1038    http://rt.cpan.org/Ticket/Display.html?id=29937
1039
1040  - mixing qtype scaling now sets all channels of a pixel to zero if
1041    the pixel has zero coverage (zero alpha).  This should produce more
1042    compressible output files.
1043    http://rt.cpan.org/Ticket/Display.html?id=32324
1044
1045  - removed the pointless #! line from lib/Imager/Font/Wrap.pm
1046    Noticed when I saw:
1047    https://bugzilla.redhat.com/show_bug.cgi?id=166254
1048    I'm not changing the #! lines of the sample code, since it's sample
1049    code, not intended for installation.
1050    http://rt.cpan.org/Ticket/Display.html?id=33408
1051
1052  - some TGA images weren't being detected correctly as TGA images
1053    https://rt.cpan.org/Ticket/Display.html?id=32925
1054
1055  - handling of the left-over bit for 16-bit/pixel TGA images has been
1056    changed to match the behaviour of the GIMP.  Previously the bit
1057    being set was treated as an opaque pixel, but one user reported a
1058    problem with loading such an image.  I haven't been able to find any
1059    tools beyond the GIMP that handle alpha-channel 16-bit TGAs, so
1060    I'll match it's behaviour.  See issue 114913 in the GIMP's
1061    bugzilla.
1062    http://rt.cpan.org/Ticket/Display.html?id=32926
1063
1064 Imager 0.62 - 10 December 2007
1065 ===========
1066
1067  - Makefile.PL now expands ~/path supplied to --incpath or --libpath
1068    to /path under your home directory.
1069    http://rt.cpan.org/Ticket/Display.html?id=29484
1070
1071  - the old dynaload code used Mach API functions to load dynamic
1072    libraries on Mac OS X.  These APIs have been deprecated in OS X
1073    10.5 and were causing some build problems.
1074    So henceforth Imager uses the dlopen() family of functions, and you 
1075    will need version 10.3 or later of OS X.
1076
1077  - added the det() function to the transform2() engine.
1078    added the sample quad_to_square.pl
1079    Courtesy Richard Fairhurst.
1080    http://rt.cpan.org/Ticket/Display.html?id=31244
1081
1082 Bug fixes:
1083
1084  - samples/gifscale.pl sourced the base value for gif_top from
1085    gif_left.
1086    Thanks to Eleneldil G. Arilou for pointing this out.
1087
1088  - t/t82inline.t no longer loads B at runtime, to work around a bug
1089    in some 5.005_0[45] installations.
1090    http://rt.cpan.org/Ticket/Display.html?id=30508
1091
1092  - work around Module::Depends::Intrusive bug #21229
1093    http://rt.cpan.org/Ticket/Display.html?id=30520
1094
1095  - the hardinvert filter no-longer inverts the alpha channel.
1096    http://rt.cpan.org/Ticket/Display.html?id=30002
1097
1098  - the hardinvert filter now supports large samples
1099
1100 Imager 0.61_02 - 28 November 2007
1101 ==============
1102
1103  - major TIFF support re-work
1104    http://rt.cpan.org/Ticket/Display.html?id=20329
1105
1106  - added a C level image interface for accessing samples from 1-32
1107    bits, exposed this at the perl level in getsamples()
1108
1109  - the conv filter now works at floating point precision for high bit
1110    images
1111
1112  - added is_bilevel method to test whether an image should be written as
1113    a bilevel image if the image format supports it.
1114
1115  - added -log-stderr as an Imager import list option
1116
1117  - added some important types to Imager::APIRef
1118
1119  - added test_image_double() to Imager::Test
1120
1121 Bug fixes:
1122
1123  - Imager::Fountain couldn't read GIMP gradient files with 10 or more
1124    segments
1125
1126  - the scale() method with qtype mixing now handles images with an
1127    alpha channel correctly.
1128
1129  - fixed a broken link from the "animated GIF" entry in the concept index.
1130    Thanks to Slaven Rezic.
1131    http://rt.cpan.org/Ticket/Display.html?id=30889
1132
1133  - on some perl's the infix expression parser test would fail due to
1134    actions in the grammar returning false.  Made sure all actions return
1135    a true value.
1136    Thanks to Richard Fairhurst for spending a lot of time in tracking
1137    down this problem.
1138    http://rt.cpan.org/Public/Bug/Display.html?id=29562
1139
1140 Imager 0.61 - 5 November 2007
1141 ===========
1142
1143  - added samples/gifscale.pl, which adjusts the screen size/position tags
1144    when scaling an animated gif
1145    http://rt.cpan.org/Ticket/Display.html?id=27591
1146
1147 Bug fixes:
1148
1149  - correct handling of sz in matrix_transform() - this should allow
1150    perspective type transformations to work now.
1151    http://rt.cpan.org/Ticket/Display.html?id=29936
1152
1153  - prevent a cast to integer warning on x64 builds in datatypes.c
1154    also fixed some other type warnings
1155    https://rt.cpan.org/Ticket/Display.html?id=30204
1156
1157  - some sub-directory tests depended on files produced by the parent
1158    directory tests
1159    http://rt.cpan.org/Ticket/Display.html?id=30203
1160
1161  - Imager::Font::Wrap doesn't correctly set savepos
1162    thanks to Nikita Dedik and Eleneldil G. Arilou for reporting this.
1163    http://rt.cpan.org/Ticket/Display.html?id=29771
1164
1165  - test 171 in t/t01introvert.t was failing on perls configured to
1166    use long double.
1167    http://rt.cpan.org/Ticket/Display.html?id=29413
1168
1169  - the code for the transform2() uminus operator was missing a break.
1170    Added tests for better code coverage of the ops.
1171    http://rt.cpan.org/Ticket/Display.html?id=29296
1172
1173  - the SGI RLE compression code could overflow its compression buffer
1174    http://rt.cpan.org/Ticket/Display.html?id=30334
1175
1176  - the 32-bit output function used by the SGI code only handled values
1177    under 0x10000.  This was most noticable when writing large RLE images.
1178    http://rt.cpan.org/Ticket/Display.html?id=30335
1179
1180  - validate chan_count for chans == NULL for each of the i_gsamp()
1181    implementations.
1182    http://rt.cpan.org/Ticket/Display.html?id=28985
1183
1184  - attempt to work around the test failure at 
1185    http://www.nntp.perl.org/group/perl.cpan.testers/2007/09/msg650810.html
1186    http://rt.cpan.org/Ticket/Display.html?id=29562
1187
1188  - improve the error messages produced when attempting to read or write
1189    an unknown image file format.
1190    http://rt.cpan.org/Ticket/Display.html?id=30103
1191
1192  - improve the transform2() documentation
1193    http://rt.cpan.org/Ticket/Display.html?id=29267
1194
1195  - correctly generate the author key in META.yml
1196    http://rt.cpan.org/Ticket/Display.html?id=30377
1197
1198  - correctly blend a rotated (or matrix_transformed()) image when
1199    performing interpolation in the presence of an alpha channel.
1200    Also corrected the centring of the rotated image on the output
1201    image.
1202
1203 Imager 0.60 - 30 August 2007
1204 ===========
1205
1206  - Finished/rewrote Arnar's old SGI RGB file format support, so Imager
1207    now has full SGI RGB image format, including RLE and 16-bit/sample
1208    images.
1209    https://rt.cpan.org/Ticket/Display.html?id=8666
1210
1211  - logging functions are now available in the API
1212
1213  - applied Gabriel Vasseur's patch
1214    added documentation, further tests, and support for greyscale images
1215    Obviously problems are my fault :)
1216    https://rt.cpan.org/Ticket/Display.html?id=28142
1217
1218  - the mask for ICO/CUR images is now applied as an alpha channel to
1219    the returned image.  For the old behaviour, supply ico_masked => 0
1220    to read() or read_multi().  This should be less confusing when
1221    using Imager as a general image processor.
1222    https://rt.cpan.org/Ticket/Display.html?id=29001
1223
1224 Bug fixes:
1225
1226  - in some cases it's possible for giflib/libungif to return color 
1227    indexes outside the range of colors defined by the image's palette.
1228    We now expand the palette to match the indexes used.
1229    Thanks to Gabriel Vasseur for reporting this.
1230
1231  - fixed various memory leaks that could occur when failing to read png,
1232    jpeg, bmp or tga files.
1233
1234  - to avoid confusion, channels not present in the image are returned as
1235    zero by getscanline().  This has no effect on the C level i_glin()
1236    and i_glinf() API functions which continue to not set the unused
1237    channels.
1238
1239  - the convert() method now returns an image of the same sample size as
1240    the source image.
1241    https://rt.cpan.org/Ticket/Display.html?id=28492
1242
1243  - remove repeated text in Imager::Files
1244    http://rt.cpan.org/Ticket/Display.html?id=27589
1245
1246  - be even more explicit that scale() and friends don't modify the source
1247    image, but return a new image.
1248    http://rt.cpan.org/Ticket/Display.html?id=28570
1249
1250  - improve the error message from errstr() when you try to load a font
1251    for which the driver hasn't been built in Imager.
1252    http://rt.cpan.org/Ticket/Display.html?id=27571
1253
1254  - transparency is now enabled by default when writing GIF images
1255    http://rt.cpan.org/Ticket/Display.html?id=27615
1256
1257  - Imager would not load on Windows 98
1258    http://rt.cpan.org/Ticket/Display.html?id=27653
1259
1260 Imager 0.59 - 14 June 2007
1261 ===========
1262
1263 Bug fixes:
1264
1265  - fixes a regression introduced by the fixes for RT 11972
1266    http://rt.cpan.org/Ticket/Display.html?id=27546
1267
1268  - cropping outside the image would return an Imager object with
1269    no low-level image object, instead of returning false.
1270    Fixed by: Philip Gwyn (Leolo)
1271    http://rt.cpan.org/Ticket/Display.html?id=27509
1272
1273 Imager 0.58 - 16 May 2007
1274 ===========
1275
1276 No significant changes from 0.57_01.
1277
1278 Imager 0.57_01 - 11 May 2007
1279 ==============
1280
1281  - added to_rgb16 to produce a 16-bit/sample version of an image
1282
1283  - improve freetype 1.x text output efficiency
1284
1285 Bug fixes:
1286
1287  - search another place for rgb.txt, and check all the places 
1288    Imager::Color checks when deciding whether to skip testing it
1289    http://rt.cpan.org/Ticket/Display.html?id=26064
1290
1291  - use a convolution kernel size based on the stddev rather than a
1292    fixed size when performing a gaussian blur
1293    http://rt.cpan.org/Ticket/Display.html?id=25645
1294
1295  - document the difference() method's mindist parameter, and debug it.
1296
1297  - put the Imager release number in the Inline::C generated code to
1298    regenerate Inline code when a new release of Imager is installed.
1299    http://rt.cpan.org/Ticket/Display.html?id=26278
1300
1301  - fix rendering on alpha channel images for the FreeType 1.x driver.
1302    http://rt.cpan.org/Ticket/Display.html?id=11972
1303
1304  - fix rendering on alpha channel images for the T1lib driver.
1305    http://rt.cpan.org/Ticket/Display.html?id=11972
1306
1307  - reworked library probing, we can now set more than one probe
1308    function for a library.  Disabled the default (non-freetype-config)
1309    library probe and added an extra probe function that searches for
1310    both ft2build.h and whatever it includes, and adds -I as needed.
1311    Hopefully this will fix build problems like
1312    http://www.nntp.perl.org/group/perl.cpan.testers/2007/05/msg472281.html
1313    http://rt.cpan.org/Ticket/Display.html?id=26086
1314
1315 Imager 0.57 - 30 Apr 2007
1316 ===========
1317
1318 This is a maintenence release fixing a security issue in Imager.
1319
1320  - CRITICAL: a specially crafted compressed BMP file can cause a buffer
1321    overflow in malloced memory.  There will be further discussion of
1322    this issue in the ticket below.
1323    http://rt.cpan.org/Ticket/Display.html?id=26811
1324    CVE-2007-2459  CVE-2007-2413
1325    The descriptions at cve.mitre.org varied in quality, please see the
1326    ticket at rt.cpan.org for a more accurate description of the issue.
1327
1328 Imager 0.56 - 1 Apr 2007
1329 ===========
1330
1331  - added support for reading 16-bit/sample PGM/PPM images
1332
1333  - added support for writing 16-bit/sample PGM/PPM images
1334
1335  - improved performance of reading PBM/PGM/PPM images
1336
1337  - added support for writing PBM images if the image is paletted and
1338    contains only black and white
1339
1340  - added a new make_colors value - "mono"
1341
1342  - switched from the svn log Changes to a manual Changes to reduce
1343    noise
1344
1345  - new sample code - samples/flasher.pl
1346
1347 Bug fixes:
1348
1349  - CRITICAL: the "Imager" typemap entry (not used by Imager itself)
1350    was returning an image object with an extra reference, this
1351    resulted in a memory leak.
1352    http://rt.cpan.org/Ticket/Display.html?id=24992
1353
1354  - fix rendering on alpha channel images for the FreeType 2.x driver
1355    http://rt.cpan.org/Ticket/Display.html?id=11972
1356
1357  - reading bmp files now consitently handles short reads.  You can now
1358    supply a parameter to treat a short read as successful and set
1359    i_incomplete
1360    http://rt.cpan.org/Ticket/Display.html?id=8426
1361
1362  - previously, reading ASCII PBM files required spaces between samples,
1363    even though the format doesn't require that
1364
1365  - improved documentation of the unsharpmask filter (I hope)
1366    http://rt.cpan.org/Ticket/Display.html?id=25531
1367
1368  - force flushing of the output from i_tt_dump_names() and test output
1369    in t/t35ttfont.t to prevent output from being mixed up.
1370    https://rt.cpan.org/Ticket/Display.html?id=24859
1371
1372  - rewrite a conditional expression as an if() to hopefully work around
1373    a bug in the pre-4.0 GCC Apple shipped with OS X 10.4.
1374    https://rt.cpan.org/Ticket/Display.html?id=25561
1375
1376  - avoid Data::Dumper in regops.perl to support older releases of perl
1377    https://rt.cpan.org/Ticket/Display.html?id=24391
1378
1379 Imager 0.55 - 16 Dec 2006
1380 ===========
1381
1382 This is primarily a bug fix release.
1383
1384 Note: Test::More is now a pre-requisite for Imager and is no longer bundled.
1385
1386 There is one new feature:
1387
1388  - the Win32 font driver now supports UTF8 (RT 22166)
1389    http://www.cpanforum.com/threads/3276
1390    http://rt.cpan.org/Ticket/Display.html?id=22166
1391
1392 Several bugs were fixed:
1393
1394  - the string() method would not output the string "0"
1395    http://rt.cpan.org/Public/Bug/Display.html?id=21770
1396
1397  - fills.c was failing to compile on Solaris 10 (compiler unknown)
1398    http://rt.cpan.org/Public/Bug/Display.html?id=21944
1399
1400  - the gif_disposal and gif_user_input tags weren't being read from
1401    the file correctly
1402    http://rt.cpan.org/Public/Bug/Display.html?id=22192
1403
1404  - gif.c was failing to build under MSVC
1405    http://rt.cpan.org/Ticket/Display.html?id=23922
1406
1407  - in some cases strings passed to the string() method were treated as
1408    terminated by NUL (chr 0)
1409    http://rt.cpan.org/Public/Bug/Display.html?id=21770
1410
1411  - on "MSWin32" perl builds we now link to -lzlib instead of -lz since
1412    that's the default build name for zlib on Win32.
1413    http://rt.cpan.org/Ticket/Display.html?id=23064
1414
1415  - search $Config{incpath} for headers too, which we should have been
1416    doing all along.
1417
1418 Win32 font driver fixes:
1419
1420  - the global descent value from bounding box was the wrong sign
1421    http://www.cpanforum.com/threads/3276
1422
1423  - if the first or last glyph overflowed the left or right side of the
1424    advance width they would be clipped
1425
1426
1427 Imager 0.54 - 14 Sep 2006
1428 ===========
1429
1430 This is primarily a feature release:
1431
1432  - a new qtype value 'mixing' has been added to the scale()
1433    method. This is faster than 'normal', slower than 'preview'. This
1434    is based on the method used by pnmscale, and seems to produce less
1435    blurry results than normal.
1436    http://rt.cpan.org/Public/Bug/Display.html?id=20677
1437
1438  - the rubthrough() method can now render onto images with an alpha
1439    channel.
1440    http://rt.cpan.org/Ticket/Display.html?id=20678
1441
1442  - the read_multi() method now falls back to calling doing a single
1443    image read via the read() method and write_multi() will now fall
1444    back to calling write() if a single image is supplied. This means
1445    you can simply call the read_multi() or write_multi() functions
1446    without having to check if the type is formatted by that method.
1447    http://rt.cpan.org/Ticket/Display.html?id=19457
1448    http://rt.cpan.org/Ticket/Display.html?id=19458
1449
1450  - the GIF loop extension can now be written. If you don't have
1451    libungif/giflib 4.1.4 (or some distribution's bugfixed equivalent) you
1452    should upgrade.
1453    http://rt.cpan.org/Ticket/Display.html?id=21185
1454
1455  - getscanline() and setscanline() can now read/write palette index
1456    based data from/to the image for paletted images, by setting type to
1457    'index'.
1458    http://rt.cpan.org/Ticket/Display.html?id=20338
1459
1460  - we no longer hassle you to disable GIF support
1461    http://rt.cpan.org/Ticket/Display.html?id=20687
1462
1463  - minor documentation fixes
1464
1465
1466 Imager 0.53 - 26 Jul 2006
1467 ===========
1468
1469 This is a bugfix release.
1470
1471 Some test code was left in a code path not covered by the test
1472 suite. A test was added to cover this code path and the test code was
1473 removed.
1474 http://rt.cpan.org/Public/Bug/Display.html?id=20705
1475
1476
1477 Imager 0.52 - 25 Jul 2006
1478 ===========
1479
1480 This is primarily a feature release, but contains a fair few bug
1481 fixes, new features:
1482
1483  - ability to read and write MS Windows ICO and CUR files
1484
1485  - you can now add file format plugins to support new file formats
1486
1487  - add POD coverage tests
1488
1489  - setcolors() and addcolors() now accept color names and so on
1490    instead of requiring Imager::Color objects.
1491    http://rt.cpan.org/Ticket/Display.html?id=20056
1492
1493  - flood_fill() can now fill to a specified border color instead of
1494    just to the area the same color as the seed.
1495    http://rt.cpan.org/Ticket/Display.html?id=19618
1496
1497
1498 Bug fixes:
1499
1500  - bounding_box for the T1 driver wasn't converting UTF8 to ascii when
1501    calculating the advance width.
1502    http://rt.cpan.org/Public/Bug/Display.html?id=20554
1503
1504  - bounding_box for the T1 driver wasn't including leading and
1505    trailing spaces in the bounding box as the other drivers did, it also
1506    produced strange results for empty strings or strings containing only
1507    spaces
1508
1509  - when reading CMYK jpeg images they were being transferred to the
1510    image object as is, producing a four channel image. It only looked ok
1511    due to an old still unfixed Photoshop bug. We now convert from the
1512    inverted CMYK that photoshop (and Corel for example) produce into RGB.
1513    http://rt.cpan.org/Ticket/Display.html?id=20416
1514
1515  - reading a CYMK TIFF would result in a 4 channel image, reading any
1516    image with more than 4 channels (eg. RGB with 2 alpha channels) would
1517    result in an error.
1518    http://rt.cpan.org/Ticket/Display.html?id=20415
1519
1520  - added /usr/local/include to the default include search path, since
1521    we were already searching /usr/local/lib for libraries.
1522
1523 And various minor fixes and documentation updates.
1524
1525
1526 Imager 0.51 - 23 Apr 2006
1527 ===========
1528
1529  - fix a validation bug when processing JPEG EXIF data that can cause
1530    a crash
1531    http://rt.cpan.org/Public/Bug/Display.html?id=18496
1532
1533  - fix mis-processing of the src_maxx and src_maxy parameters of the
1534    paste() method
1535    http://rt.cpan.org/Public/Bug/Display.html?id=18712
1536
1537  - fix a problem in Imager's "smart" handling of the color parameter
1538    to various methods.
1539    http://rt.cpan.org/Public/Bug/Display.html?id=18561
1540
1541
1542 Imager 0.50 - 29 Mar 2006
1543 ===========
1544
1545  - CRITICAL: fixes a segmentation fault from attempting to write a 2
1546    or 4 channel image to jpeg or a 2 channel image to tga where the
1547    output is an in-memeory buffer.
1548    http://rt.cpan.org/Public/Bug/Display.html?id=18397
1549
1550  - fixes an incorrect pointer parameter in the PNG code
1551    http://rt.cpan.org/Public/Bug/Display.html?id=18051
1552
1553  - skip Inline::C tests when building in a directory with spaces
1554    http://rt.cpan.org/Public/Bug/Display.html?id=18049