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