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