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