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