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