1 Imager release history. Older releases can be found in Changes.old
3 Imager 0.68 - unrelease
6 - Imager->new(file => $filename) and other similar incantations will
8 https://rt.cpan.org/Ticket/Display.html?id=48261
12 - avoid using CHECK as a label in Imager::Test
13 http://nntp.x.perl.org/group/perl.cpan.testers/5220921
15 - re-work most image file test files that require a library into
16 separate library present/not present files to remove stupidly long
19 - don't treat rubthrough() outside the bounds of the target image as
21 http://nntp.x.perl.org/group/perl.cpan.testers/5185716
23 Imager 0.67_01 - 02 Sep 2009
28 - correct documentation of default of raw image interleave read
30 https://rt.cpan.org/Ticket/Display.html?id=42074
32 - add raw_ prefix to raw read parameters, though the original names
35 - fail the read if an invalid raw_interleave parameter is supplied
37 - warn if no interleave or raw_interleave parameter is supplied,
38 since the documented default was wrong, and incompatible with the
41 - for reading raw images, if raw_storechannels > raw_datachannels,
42 set the extra channels in the image to 0
44 - when probing for executables like freetype-config, search for .bat
45 and .cmd on MSWin32, as well as .exe.
46 https://rt.cpan.org/Ticket/Display.html?id=49275
48 - re-work the external libraries section of README:
49 - list Debian and Redhat package names for each library
53 - use the new EU::MM META_MERGE facility instead of generating
55 https://rt.cpan.org/Ticket/Display.html?id=47888
57 - use Devel::CheckLib (bundled, modified) to check which release of
58 libtiff is installed and reject 3.9.0
59 http://bugzilla.maptools.org/show_bug.cgi?id=2088
60 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=543079
62 Imager 0.67 - 12 Dec 2008
67 - fix a packaging error
69 Imager 0.66 - 12 Dec 2008
72 - 24-bit color .ICO/.CUR files can now be read.
76 - an optimization skipping 0 src alpha values could cause the
77 rubthrough() to read past the end of a buffer.
78 http://www.nntp.perl.org/group/perl.cpan.testers/2008/05/msg1509184.html
80 - corrected a reference leak where writing GIFs would leak memory.
81 This could also happen calling to_paletted().
82 Also documented the underlying long existing feature where the
83 colors parameter is filled with the generated color table and added
85 http://rt.cpan.org/Ticket/Display.html?id=41028
87 - write out the image size in bytes field of a BMP correctly.
88 http://rt.cpan.org/Ticket/Display.html?id=41406
90 - add limited tests for Imager::ExtUtils
92 - make Imager::ExtUtils->includes use an absolute path, since
93 a relative path could cause failures using Inline::C.
94 http://rt.cpan.org/Ticket/Display.html?id=37353
96 - re-arrange the POD for Imager::Font::BBox:
97 - mark total_width(), pos_width(), end_offset() obsolete, since
98 they're mostly for backwards compatibility
99 - group width methods and height methods
100 https://rt.cpan.org/Ticket/Display.html?id=39999
102 Imager 0.65 - 20 May 2008
107 - In some cases when an error occurs reading those parts of a JPEG
108 file after the image the scan-line buffer could be freed a second
109 time. In cases where the the error occured while reading the image
110 data it's possible that the buffer could have leaked.
111 Thanks to Gabriel Vasseur for reporting this and help in tracking
114 - the gif_screen_height tag was overriding the screen width and being
115 ignored for the screen height when present.
116 https://rt.cpan.org/Public/Bug/Display.html?id=35568
118 Imager 0.64 - 23 April 2008
121 This is a bug fix release. This includes a fix for a possible
126 - Possible security issue: The floating point sample path for image
127 based fills had a buffer overflow. This would overwrite the end of
128 a malloc()ed buffer with double precision floats.
129 http://rt.cpan.org/Ticket/Display.html?id=35324
132 - check that the result of fileno($fh) is defined rather than simply
133 true when read() or write() is supplied with an fh parameter.
134 http://rt.cpan.org/Ticket/Display.html?id=35139
136 - i_scale_axis() wasn't checking the result of i_img_new_ch()
137 resulting in a SIGSEGV when attempting to scale an image to a size
138 too large to fit in memory. This is a NULL pointer access issue,
139 not a buffer overflow.
140 Added a check for the failure.
141 scale_calculate() (and hence scale()) will now fail if any of the
142 scale size parameters are a reference.
143 http://rt.cpan.org/Ticket/Display.html?id=35172
145 - Regression: filling a greyscale image with a hatch used the wrong
146 color channels from the supplied fg/bg colors.
147 https://rt.cpan.org/Ticket/Display.html?id=35278
149 - fixed a related problem for image fills.
151 Imager 0.63 - 7 April 2008
154 This release primarily contains changes to improve ease of use -
155 rather than you having to convert images to the appropriate number of
156 channels, Imager handles it internally. How to handle drawing colors
157 and the default combine mode is a thornier problem left for some other
160 - the font libraries are now only initialized when needed.
161 http://rt.cpan.org/Ticket/Display.html?id=28825
163 - moved the imtoc.perl code into Imager::Preprocess
165 - paste() and rubthrough() now adapt the source image data to the
166 destination, so you can now safely paste/rubthrough from greyscale
167 images to color images or back, or from alpha channel images to
168 noalpha channels or back.
169 https://rt.cpan.org/Ticket/Display.html?id=30908
171 - rubthrough() now falls back to pasting when the source doesn't have
172 an alpha channel. This effectively treats the source as having a
173 max alpha channel, the right thing to do.
174 http://rt.cpan.org/Ticket/Display.html?id=29944
176 - re-worked most of the area filling code to use a common set of
177 functions when filling.
178 Corrected normal combine mode.
179 Rewrote most of the combine modes to match the way the SVG draft
180 defines them with respect to a translucent source and destination.
181 Added tests for translucent source and destination.
182 Added tests to check 8-bit/sample and double/sample combines work
184 https://rt.cpan.org/Ticket/Display.html?id=29879
186 - writing a 2 or 4 channel image to a JPEG file will now write that
187 image as if composited against a background, black by default,
188 overridable with the i_background tag/parameter.
189 https://rt.cpan.org/Ticket/Display.html?id=29876
191 - writing a 2 or 4 channel image to a PGM/PPM file will now write
192 that image as if composited against a background, black by default,
193 overridable with the i_background tag/parameter.
194 http://rt.cpan.org/Ticket/Display.html?id=30074
196 - writing a 2 or 4 channel image to a BMP file will now write that
197 image as if composited against a background, black by default,
198 overridable with the i_background tag/parameter.
199 http://rt.cpan.org/Ticket/Display.html?id=30075
203 - Imager::Matrix2d->translate() now only requires one of the x or y
205 http://rt.cpan.org/Ticket/Display.html?id=29937
207 - mixing qtype scaling now sets all channels of a pixel to zero if
208 the pixel has zero coverage (zero alpha). This should produce more
209 compressible output files.
210 http://rt.cpan.org/Ticket/Display.html?id=32324
212 - removed the pointless #! line from lib/Imager/Font/Wrap.pm
214 https://bugzilla.redhat.com/show_bug.cgi?id=166254
215 I'm not changing the #! lines of the sample code, since it's sample
216 code, not intended for installation.
217 http://rt.cpan.org/Ticket/Display.html?id=33408
219 - some TGA images weren't being detected correctly as TGA images
220 https://rt.cpan.org/Ticket/Display.html?id=32925
222 - handling of the left-over bit for 16-bit/pixel TGA images has been
223 changed to match the behaviour of the GIMP. Previously the bit
224 being set was treated as an opaque pixel, but one user reported a
225 problem with loading such an image. I haven't been able to find any
226 tools beyond the GIMP that handle alpha-channel 16-bit TGAs, so
227 I'll match it's behaviour. See issue 114913 in the GIMP's
229 http://rt.cpan.org/Ticket/Display.html?id=32926
231 Imager 0.62 - 10 December 2007
234 - Makefile.PL now expands ~/path supplied to --incpath or --libpath
235 to /path under your home directory.
236 http://rt.cpan.org/Ticket/Display.html?id=29484
238 - the old dynaload code used Mach API functions to load dynamic
239 libraries on Mac OS X. These APIs have been deprecated in OS X
240 10.5 and were causing some build problems.
241 So henceforth Imager uses the dlopen() family of functions, and you
242 will need version 10.3 or later of OS X.
244 - added the det() function to the transform2() engine.
245 added the sample quad_to_square.pl
246 Courtesy Richard Fairhurst.
247 http://rt.cpan.org/Ticket/Display.html?id=31244
251 - samples/gifscale.pl sourced the base value for gif_top from
253 Thanks to Eleneldil G. Arilou for pointing this out.
255 - t/t82inline.t no longer loads B at runtime, to work around a bug
256 in some 5.005_0[45] installations.
257 http://rt.cpan.org/Ticket/Display.html?id=30508
259 - work around Module::Depends::Intrusive bug #21229
260 http://rt.cpan.org/Ticket/Display.html?id=30520
262 - the hardinvert filter no-longer inverts the alpha channel.
263 http://rt.cpan.org/Ticket/Display.html?id=30002
265 - the hardinvert filter now supports large samples
267 Imager 0.61_02 - 28 November 2007
270 - major TIFF support re-work
271 http://rt.cpan.org/Ticket/Display.html?id=20329
273 - added a C level image interface for accessing samples from 1-32
274 bits, exposed this at the perl level in getsamples()
276 - the conv filter now works at floating point precision for high bit
279 - added is_bilevel method to test whether an image should be written as
280 a bilevel image if the image format supports it.
282 - added -log-stderr as an Imager import list option
284 - added some important types to Imager::APIRef
286 - added test_image_double() to Imager::Test
290 - Imager::Fountain couldn't read GIMP gradient files with 10 or more
293 - the scale() method with qtype mixing now handles images with an
294 alpha channel correctly.
296 - fixed a broken link from the "animated GIF" entry in the concept index.
297 Thanks to Slaven Rezic.
298 http://rt.cpan.org/Ticket/Display.html?id=30889
300 - on some perl's the infix expression parser test would fail due to
301 actions in the grammar returning false. Made sure all actions return
303 Thanks to Richard Fairhurst for spending a lot of time in tracking
305 http://rt.cpan.org/Public/Bug/Display.html?id=29562
307 Imager 0.61 - 5 November 2007
310 - added samples/gifscale.pl, which adjusts the screen size/position tags
311 when scaling an animated gif
312 http://rt.cpan.org/Ticket/Display.html?id=27591
316 - correct handling of sz in matrix_transform() - this should allow
317 perspective type transformations to work now.
318 http://rt.cpan.org/Ticket/Display.html?id=29936
320 - prevent a cast to integer warning on x64 builds in datatypes.c
321 also fixed some other type warnings
322 https://rt.cpan.org/Ticket/Display.html?id=30204
324 - some sub-directory tests depended on files produced by the parent
326 http://rt.cpan.org/Ticket/Display.html?id=30203
328 - Imager::Font::Wrap doesn't correctly set savepos
329 thanks to Nikita Dedik and Eleneldil G. Arilou for reporting this.
330 http://rt.cpan.org/Ticket/Display.html?id=29771
332 - test 171 in t/t01introvert.t was failing on perls configured to
334 http://rt.cpan.org/Ticket/Display.html?id=29413
336 - the code for the transform2() uminus operator was missing a break.
337 Added tests for better code coverage of the ops.
338 http://rt.cpan.org/Ticket/Display.html?id=29296
340 - the SGI RLE compression code could overflow its compression buffer
341 http://rt.cpan.org/Ticket/Display.html?id=30334
343 - the 32-bit output function used by the SGI code only handled values
344 under 0x10000. This was most noticable when writing large RLE images.
345 http://rt.cpan.org/Ticket/Display.html?id=30335
347 - validate chan_count for chans == NULL for each of the i_gsamp()
349 http://rt.cpan.org/Ticket/Display.html?id=28985
351 - attempt to work around the test failure at
352 http://www.nntp.perl.org/group/perl.cpan.testers/2007/09/msg650810.html
353 http://rt.cpan.org/Ticket/Display.html?id=29562
355 - improve the error messages produced when attempting to read or write
356 an unknown image file format.
357 http://rt.cpan.org/Ticket/Display.html?id=30103
359 - improve the transform2() documentation
360 http://rt.cpan.org/Ticket/Display.html?id=29267
362 - correctly generate the author key in META.yml
363 http://rt.cpan.org/Ticket/Display.html?id=30377
365 - correctly blend a rotated (or matrix_transformed()) image when
366 performing interpolation in the presence of an alpha channel.
367 Also corrected the centring of the rotated image on the output
370 Imager 0.60 - 30 August 2007
373 - Finished/rewrote Arnar's old SGI RGB file format support, so Imager
374 now has full SGI RGB image format, including RLE and 16-bit/sample
376 https://rt.cpan.org/Ticket/Display.html?id=8666
378 - logging functions are now available in the API
380 - applied Gabriel Vasseur's patch
381 added documentation, further tests, and support for greyscale images
382 Obviously problems are my fault :)
383 https://rt.cpan.org/Ticket/Display.html?id=28142
385 - the mask for ICO/CUR images is now applied as an alpha channel to
386 the returned image. For the old behaviour, supply ico_masked => 0
387 to read() or read_multi(). This should be less confusing when
388 using Imager as a general image processor.
389 https://rt.cpan.org/Ticket/Display.html?id=29001
393 - in some cases it's possible for giflib/libungif to return color
394 indexes outside the range of colors defined by the image's palette.
395 We now expand the palette to match the indexes used.
396 Thanks to Gabriel Vasseur for reporting this.
398 - fixed various memory leaks that could occur when failing to read png,
399 jpeg, bmp or tga files.
401 - to avoid confusion, channels not present in the image are returned as
402 zero by getscanline(). This has no effect on the C level i_glin()
403 and i_glinf() API functions which continue to not set the unused
406 - the convert() method now returns an image of the same sample size as
408 https://rt.cpan.org/Ticket/Display.html?id=28492
410 - remove repeated text in Imager::Files
411 http://rt.cpan.org/Ticket/Display.html?id=27589
413 - be even more explicit that scale() and friends don't modify the source
414 image, but return a new image.
415 http://rt.cpan.org/Ticket/Display.html?id=28570
417 - improve the error message from errstr() when you try to load a font
418 for which the driver hasn't been built in Imager.
419 http://rt.cpan.org/Ticket/Display.html?id=27571
421 - transparency is now enabled by default when writing GIF images
422 http://rt.cpan.org/Ticket/Display.html?id=27615
424 - Imager would not load on Windows 98
425 http://rt.cpan.org/Ticket/Display.html?id=27653
427 Imager 0.59 - 14 June 2007
432 - fixes a regression introduced by the fixes for RT 11972
433 http://rt.cpan.org/Ticket/Display.html?id=27546
435 - cropping outside the image would return an Imager object with
436 no low-level image object, instead of returning false.
437 Fixed by: Philip Gwyn (Leolo)
438 http://rt.cpan.org/Ticket/Display.html?id=27509
440 Imager 0.58 - 16 May 2007
443 No significant changes from 0.57_01.
445 Imager 0.57_01 - 11 May 2007
448 - added to_rgb16 to produce a 16-bit/sample version of an image
450 - improve freetype 1.x text output efficiency
454 - search another place for rgb.txt, and check all the places
455 Imager::Color checks when deciding whether to skip testing it
456 http://rt.cpan.org/Ticket/Display.html?id=26064
458 - use a convolution kernel size based on the stddev rather than a
459 fixed size when performing a gaussian blur
460 http://rt.cpan.org/Ticket/Display.html?id=25645
462 - document the difference() method's mindist parameter, and debug it.
464 - put the Imager release number in the Inline::C generated code to
465 regenerate Inline code when a new release of Imager is installed.
466 http://rt.cpan.org/Ticket/Display.html?id=26278
468 - fix rendering on alpha channel images for the FreeType 1.x driver.
469 http://rt.cpan.org/Ticket/Display.html?id=11972
471 - fix rendering on alpha channel images for the T1lib driver.
472 http://rt.cpan.org/Ticket/Display.html?id=11972
474 - reworked library probing, we can now set more than one probe
475 function for a library. Disabled the default (non-freetype-config)
476 library probe and added an extra probe function that searches for
477 both ft2build.h and whatever it includes, and adds -I as needed.
478 Hopefully this will fix build problems like
479 http://www.nntp.perl.org/group/perl.cpan.testers/2007/05/msg472281.html
480 http://rt.cpan.org/Ticket/Display.html?id=26086
482 Imager 0.57 - 30 Apr 2007
485 This is a maintenence release fixing a security issue in Imager.
487 - CRITICAL: a specially crafted compressed BMP file can cause a buffer
488 overflow in malloced memory. There will be further discussion of
489 this issue in the ticket below.
490 http://rt.cpan.org/Ticket/Display.html?id=26811
491 CVE-2007-2459 CVE-2007-2413
492 The descriptions at cve.mitre.org varied in quality, please see the
493 ticket at rt.cpan.org for a more accurate description of the issue.
495 Imager 0.56 - 1 Apr 2007
498 - added support for reading 16-bit/sample PGM/PPM images
500 - added support for writing 16-bit/sample PGM/PPM images
502 - improved performance of reading PBM/PGM/PPM images
504 - added support for writing PBM images if the image is paletted and
505 contains only black and white
507 - added a new make_colors value - "mono"
509 - switched from the svn log Changes to a manual Changes to reduce
512 - new sample code - samples/flasher.pl
516 - CRITICAL: the "Imager" typemap entry (not used by Imager itself)
517 was returning an image object with an extra reference, this
518 resulted in a memory leak.
519 http://rt.cpan.org/Ticket/Display.html?id=24992
521 - fix rendering on alpha channel images for the FreeType 2.x driver
522 http://rt.cpan.org/Ticket/Display.html?id=11972
524 - reading bmp files now consitently handles short reads. You can now
525 supply a parameter to treat a short read as successful and set
527 http://rt.cpan.org/Ticket/Display.html?id=8426
529 - previously, reading ASCII PBM files required spaces between samples,
530 even though the format doesn't require that
532 - improved documentation of the unsharpmask filter (I hope)
533 http://rt.cpan.org/Ticket/Display.html?id=25531
535 - force flushing of the output from i_tt_dump_names() and test output
536 in t/t35ttfont.t to prevent output from being mixed up.
537 https://rt.cpan.org/Ticket/Display.html?id=24859
539 - rewrite a conditional expression as an if() to hopefully work around
540 a bug in the pre-4.0 GCC Apple shipped with OS X 10.4.
541 https://rt.cpan.org/Ticket/Display.html?id=25561
543 - avoid Data::Dumper in regops.perl to support older releases of perl
544 https://rt.cpan.org/Ticket/Display.html?id=24391
546 Imager 0.55 - 16 Dec 2006
549 This is primarily a bug fix release.
551 Note: Test::More is now a pre-requisite for Imager and is no longer bundled.
553 There is one new feature:
555 - the Win32 font driver now supports UTF8 (RT 22166)
556 http://www.cpanforum.com/threads/3276
557 http://rt.cpan.org/Ticket/Display.html?id=22166
559 Several bugs were fixed:
561 - the string() method would not output the string "0"
562 http://rt.cpan.org/Public/Bug/Display.html?id=21770
564 - fills.c was failing to compile on Solaris 10 (compiler unknown)
565 http://rt.cpan.org/Public/Bug/Display.html?id=21944
567 - the gif_disposal and gif_user_input tags weren't being read from
569 http://rt.cpan.org/Public/Bug/Display.html?id=22192
571 - gif.c was failing to build under MSVC
572 http://rt.cpan.org/Ticket/Display.html?id=23922
574 - in some cases strings passed to the string() method were treated as
575 terminated by NUL (chr 0)
576 http://rt.cpan.org/Public/Bug/Display.html?id=21770
578 - on "MSWin32" perl builds we now link to -lzlib instead of -lz since
579 that's the default build name for zlib on Win32.
580 http://rt.cpan.org/Ticket/Display.html?id=23064
582 - search $Config{incpath} for headers too, which we should have been
585 Win32 font driver fixes:
587 - the global descent value from bounding box was the wrong sign
588 http://www.cpanforum.com/threads/3276
590 - if the first or last glyph overflowed the left or right side of the
591 advance width they would be clipped
594 Imager 0.54 - 14 Sep 2006
597 This is primarily a feature release:
599 - a new qtype value 'mixing' has been added to the scale()
600 method. This is faster than 'normal', slower than 'preview'. This
601 is based on the method used by pnmscale, and seems to produce less
602 blurry results than normal.
603 http://rt.cpan.org/Public/Bug/Display.html?id=20677
605 - the rubthrough() method can now render onto images with an alpha
607 http://rt.cpan.org/Ticket/Display.html?id=20678
609 - the read_multi() method now falls back to calling doing a single
610 image read via the read() method and write_multi() will now fall
611 back to calling write() if a single image is supplied. This means
612 you can simply call the read_multi() or write_multi() functions
613 without having to check if the type is formatted by that method.
614 http://rt.cpan.org/Ticket/Display.html?id=19457
615 http://rt.cpan.org/Ticket/Display.html?id=19458
617 - the GIF loop extension can now be written. If you don't have
618 libungif/giflib 4.1.4 (or some distribution's bugfixed equivalent) you
620 http://rt.cpan.org/Ticket/Display.html?id=21185
622 - getscanline() and setscanline() can now read/write palette index
623 based data from/to the image for paletted images, by setting type to
625 http://rt.cpan.org/Ticket/Display.html?id=20338
627 - we no longer hassle you to disable GIF support
628 http://rt.cpan.org/Ticket/Display.html?id=20687
630 - minor documentation fixes
633 Imager 0.53 - 26 Jul 2006
636 This is a bugfix release.
638 Some test code was left in a code path not covered by the test
639 suite. A test was added to cover this code path and the test code was
641 http://rt.cpan.org/Public/Bug/Display.html?id=20705
644 Imager 0.52 - 25 Jul 2006
647 This is primarily a feature release, but contains a fair few bug
650 - ability to read and write MS Windows ICO and CUR files
652 - you can now add file format plugins to support new file formats
654 - add POD coverage tests
656 - setcolors() and addcolors() now accept color names and so on
657 instead of requiring Imager::Color objects.
658 http://rt.cpan.org/Ticket/Display.html?id=20056
660 - flood_fill() can now fill to a specified border color instead of
661 just to the area the same color as the seed.
662 http://rt.cpan.org/Ticket/Display.html?id=19618
667 - bounding_box for the T1 driver wasn't converting UTF8 to ascii when
668 calculating the advance width.
669 http://rt.cpan.org/Public/Bug/Display.html?id=20554
671 - bounding_box for the T1 driver wasn't including leading and
672 trailing spaces in the bounding box as the other drivers did, it also
673 produced strange results for empty strings or strings containing only
676 - when reading CMYK jpeg images they were being transferred to the
677 image object as is, producing a four channel image. It only looked ok
678 due to an old still unfixed Photoshop bug. We now convert from the
679 inverted CMYK that photoshop (and Corel for example) produce into RGB.
680 http://rt.cpan.org/Ticket/Display.html?id=20416
682 - reading a CYMK TIFF would result in a 4 channel image, reading any
683 image with more than 4 channels (eg. RGB with 2 alpha channels) would
685 http://rt.cpan.org/Ticket/Display.html?id=20415
687 - added /usr/local/include to the default include search path, since
688 we were already searching /usr/local/lib for libraries.
690 And various minor fixes and documentation updates.
693 Imager 0.51 - 23 Apr 2006
696 - fix a validation bug when processing JPEG EXIF data that can cause
698 http://rt.cpan.org/Public/Bug/Display.html?id=18496
700 - fix mis-processing of the src_maxx and src_maxy parameters of the
702 http://rt.cpan.org/Public/Bug/Display.html?id=18712
704 - fix a problem in Imager's "smart" handling of the color parameter
706 http://rt.cpan.org/Public/Bug/Display.html?id=18561
709 Imager 0.50 - 29 Mar 2006
712 - CRITICAL: fixes a segmentation fault from attempting to write a 2
713 or 4 channel image to jpeg or a 2 channel image to tga where the
714 output is an in-memeory buffer.
715 http://rt.cpan.org/Public/Bug/Display.html?id=18397
717 - fixes an incorrect pointer parameter in the PNG code
718 http://rt.cpan.org/Public/Bug/Display.html?id=18051
720 - skip Inline::C tests when building in a directory with spaces
721 http://rt.cpan.org/Public/Bug/Display.html?id=18049