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