1 Imager release history. Older releases can be found in Changes.old
3 Imager 0.66 - 12 Dec 2008
6 - 24-bit color .ICO/.CUR files can now be read.
10 - an optimization skipping 0 src alpha values could cause the
11 rubthrough() to read past the end of a buffer.
12 http://www.nntp.perl.org/group/perl.cpan.testers/2008/05/msg1509184.html
14 - corrected a reference leak where writing GIFs would leak memory.
15 This could also happen calling to_paletted().
16 Also documented the underlying long existing feature where the
17 colors parameter is filled with the generated color table and added
19 http://rt.cpan.org/Ticket/Display.html?id=41028
21 - write out the image size in bytes field of a BMP correctly.
22 http://rt.cpan.org/Ticket/Display.html?id=41406
24 - add limited tests for Imager::ExtUtils
26 - make Imager::ExtUtils->includes use an absolute path, since
27 a relative path could cause failures using Inline::C.
28 http://rt.cpan.org/Ticket/Display.html?id=37353
30 - re-arrange the POD for Imager::Font::BBox:
31 - mark total_width(), pos_width(), end_offset() obsolete, since
32 they're mostly for backwards compatibility
33 - group width methods and height methods
34 https://rt.cpan.org/Ticket/Display.html?id=39999
36 Imager 0.65 - 20 May 2008
41 - In some cases when an error occurs reading those parts of a JPEG
42 file after the image the scan-line buffer could be freed a second
43 time. In cases where the the error occured while reading the image
44 data it's possible that the buffer could have leaked.
45 Thanks to Gabriel Vasseur for reporting this and help in tracking
48 - the gif_screen_height tag was overriding the screen width and being
49 ignored for the screen height when present.
50 https://rt.cpan.org/Public/Bug/Display.html?id=35568
52 Imager 0.64 - 23 April 2008
55 This is a bug fix release. This includes a fix for a possible
60 - Possible security issue: The floating point sample path for image
61 based fills had a buffer overflow. This would overwrite the end of
62 a malloc()ed buffer with double precision floats.
63 http://rt.cpan.org/Ticket/Display.html?id=35324
66 - check that the result of fileno($fh) is defined rather than simply
67 true when read() or write() is supplied with an fh parameter.
68 http://rt.cpan.org/Ticket/Display.html?id=35139
70 - i_scale_axis() wasn't checking the result of i_img_new_ch()
71 resulting in a SIGSEGV when attempting to scale an image to a size
72 too large to fit in memory. This is a NULL pointer access issue,
73 not a buffer overflow.
74 Added a check for the failure.
75 scale_calculate() (and hence scale()) will now fail if any of the
76 scale size parameters are a reference.
77 http://rt.cpan.org/Ticket/Display.html?id=35172
79 - Regression: filling a greyscale image with a hatch used the wrong
80 color channels from the supplied fg/bg colors.
81 https://rt.cpan.org/Ticket/Display.html?id=35278
83 - fixed a related problem for image fills.
85 Imager 0.63 - 7 April 2008
88 This release primarily contains changes to improve ease of use -
89 rather than you having to convert images to the appropriate number of
90 channels, Imager handles it internally. How to handle drawing colors
91 and the default combine mode is a thornier problem left for some other
94 - the font libraries are now only initialized when needed.
95 http://rt.cpan.org/Ticket/Display.html?id=28825
97 - moved the imtoc.perl code into Imager::Preprocess
99 - paste() and rubthrough() now adapt the source image data to the
100 destination, so you can now safely paste/rubthrough from greyscale
101 images to color images or back, or from alpha channel images to
102 noalpha channels or back.
103 https://rt.cpan.org/Ticket/Display.html?id=30908
105 - rubthrough() now falls back to pasting when the source doesn't have
106 an alpha channel. This effectively treats the source as having a
107 max alpha channel, the right thing to do.
108 http://rt.cpan.org/Ticket/Display.html?id=29944
110 - re-worked most of the area filling code to use a common set of
111 functions when filling.
112 Corrected normal combine mode.
113 Rewrote most of the combine modes to match the way the SVG draft
114 defines them with respect to a translucent source and destination.
115 Added tests for translucent source and destination.
116 Added tests to check 8-bit/sample and double/sample combines work
118 https://rt.cpan.org/Ticket/Display.html?id=29879
120 - writing a 2 or 4 channel image to a JPEG file will now write that
121 image as if composited against a background, black by default,
122 overridable with the i_background tag/parameter.
123 https://rt.cpan.org/Ticket/Display.html?id=29876
125 - writing a 2 or 4 channel image to a PGM/PPM file will now write
126 that image as if composited against a background, black by default,
127 overridable with the i_background tag/parameter.
128 http://rt.cpan.org/Ticket/Display.html?id=30074
130 - writing a 2 or 4 channel image to a BMP file will now write that
131 image as if composited against a background, black by default,
132 overridable with the i_background tag/parameter.
133 http://rt.cpan.org/Ticket/Display.html?id=30075
137 - Imager::Matrix2d->translate() now only requires one of the x or y
139 http://rt.cpan.org/Ticket/Display.html?id=29937
141 - mixing qtype scaling now sets all channels of a pixel to zero if
142 the pixel has zero coverage (zero alpha). This should produce more
143 compressible output files.
144 http://rt.cpan.org/Ticket/Display.html?id=32324
146 - removed the pointless #! line from lib/Imager/Font/Wrap.pm
148 https://bugzilla.redhat.com/show_bug.cgi?id=166254
149 I'm not changing the #! lines of the sample code, since it's sample
150 code, not intended for installation.
151 http://rt.cpan.org/Ticket/Display.html?id=33408
153 - some TGA images weren't being detected correctly as TGA images
154 https://rt.cpan.org/Ticket/Display.html?id=32925
156 - handling of the left-over bit for 16-bit/pixel TGA images has been
157 changed to match the behaviour of the GIMP. Previously the bit
158 being set was treated as an opaque pixel, but one user reported a
159 problem with loading such an image. I haven't been able to find any
160 tools beyond the GIMP that handle alpha-channel 16-bit TGAs, so
161 I'll match it's behaviour. See issue 114913 in the GIMP's
163 http://rt.cpan.org/Ticket/Display.html?id=32926
165 Imager 0.62 - 10 December 2007
168 - Makefile.PL now expands ~/path supplied to --incpath or --libpath
169 to /path under your home directory.
170 http://rt.cpan.org/Ticket/Display.html?id=29484
172 - the old dynaload code used Mach API functions to load dynamic
173 libraries on Mac OS X. These APIs have been deprecated in OS X
174 10.5 and were causing some build problems.
175 So henceforth Imager uses the dlopen() family of functions, and you
176 will need version 10.3 or later of OS X.
178 - added the det() function to the transform2() engine.
179 added the sample quad_to_square.pl
180 Courtesy Richard Fairhurst.
181 http://rt.cpan.org/Ticket/Display.html?id=31244
185 - samples/gifscale.pl sourced the base value for gif_top from
187 Thanks to Eleneldil G. Arilou for pointing this out.
189 - t/t82inline.t no longer loads B at runtime, to work around a bug
190 in some 5.005_0[45] installations.
191 http://rt.cpan.org/Ticket/Display.html?id=30508
193 - work around Module::Depends::Intrusive bug #21229
194 http://rt.cpan.org/Ticket/Display.html?id=30520
196 - the hardinvert filter no-longer inverts the alpha channel.
197 http://rt.cpan.org/Ticket/Display.html?id=30002
199 - the hardinvert filter now supports large samples
201 Imager 0.61_02 - 28 November 2007
204 - major TIFF support re-work
205 http://rt.cpan.org/Ticket/Display.html?id=20329
207 - added a C level image interface for accessing samples from 1-32
208 bits, exposed this at the perl level in getsamples()
210 - the conv filter now works at floating point precision for high bit
213 - added is_bilevel method to test whether an image should be written as
214 a bilevel image if the image format supports it.
216 - added -log-stderr as an Imager import list option
218 - added some important types to Imager::APIRef
220 - added test_image_double() to Imager::Test
224 - Imager::Fountain couldn't read GIMP gradient files with 10 or more
227 - the scale() method with qtype mixing now handles images with an
228 alpha channel correctly.
230 - fixed a broken link from the "animated GIF" entry in the concept index.
231 Thanks to Slaven Rezic.
232 http://rt.cpan.org/Ticket/Display.html?id=30889
234 - on some perl's the infix expression parser test would fail due to
235 actions in the grammar returning false. Made sure all actions return
237 Thanks to Richard Fairhurst for spending a lot of time in tracking
239 http://rt.cpan.org/Public/Bug/Display.html?id=29562
241 Imager 0.61 - 5 November 2007
244 - added samples/gifscale.pl, which adjusts the screen size/position tags
245 when scaling an animated gif
246 http://rt.cpan.org/Ticket/Display.html?id=27591
250 - correct handling of sz in matrix_transform() - this should allow
251 perspective type transformations to work now.
252 http://rt.cpan.org/Ticket/Display.html?id=29936
254 - prevent a cast to integer warning on x64 builds in datatypes.c
255 also fixed some other type warnings
256 https://rt.cpan.org/Ticket/Display.html?id=30204
258 - some sub-directory tests depended on files produced by the parent
260 http://rt.cpan.org/Ticket/Display.html?id=30203
262 - Imager::Font::Wrap doesn't correctly set savepos
263 thanks to Nikita Dedik and Eleneldil G. Arilou for reporting this.
264 http://rt.cpan.org/Ticket/Display.html?id=29771
266 - test 171 in t/t01introvert.t was failing on perls configured to
268 http://rt.cpan.org/Ticket/Display.html?id=29413
270 - the code for the transform2() uminus operator was missing a break.
271 Added tests for better code coverage of the ops.
272 http://rt.cpan.org/Ticket/Display.html?id=29296
274 - the SGI RLE compression code could overflow its compression buffer
275 http://rt.cpan.org/Ticket/Display.html?id=30334
277 - the 32-bit output function used by the SGI code only handled values
278 under 0x10000. This was most noticable when writing large RLE images.
279 http://rt.cpan.org/Ticket/Display.html?id=30335
281 - validate chan_count for chans == NULL for each of the i_gsamp()
283 http://rt.cpan.org/Ticket/Display.html?id=28985
285 - attempt to work around the test failure at
286 http://www.nntp.perl.org/group/perl.cpan.testers/2007/09/msg650810.html
287 http://rt.cpan.org/Ticket/Display.html?id=29562
289 - improve the error messages produced when attempting to read or write
290 an unknown image file format.
291 http://rt.cpan.org/Ticket/Display.html?id=30103
293 - improve the transform2() documentation
294 http://rt.cpan.org/Ticket/Display.html?id=29267
296 - correctly generate the author key in META.yml
297 http://rt.cpan.org/Ticket/Display.html?id=30377
299 - correctly blend a rotated (or matrix_transformed()) image when
300 performing interpolation in the presence of an alpha channel.
301 Also corrected the centring of the rotated image on the output
304 Imager 0.60 - 30 August 2007
307 - Finished/rewrote Arnar's old SGI RGB file format support, so Imager
308 now has full SGI RGB image format, including RLE and 16-bit/sample
310 https://rt.cpan.org/Ticket/Display.html?id=8666
312 - logging functions are now available in the API
314 - applied Gabriel Vasseur's patch
315 added documentation, further tests, and support for greyscale images
316 Obviously problems are my fault :)
317 https://rt.cpan.org/Ticket/Display.html?id=28142
319 - the mask for ICO/CUR images is now applied as an alpha channel to
320 the returned image. For the old behaviour, supply ico_masked => 0
321 to read() or read_multi(). This should be less confusing when
322 using Imager as a general image processor.
323 https://rt.cpan.org/Ticket/Display.html?id=29001
327 - in some cases it's possible for giflib/libungif to return color
328 indexes outside the range of colors defined by the image's palette.
329 We now expand the palette to match the indexes used.
330 Thanks to Gabriel Vasseur for reporting this.
332 - fixed various memory leaks that could occur when failing to read png,
333 jpeg, bmp or tga files.
335 - to avoid confusion, channels not present in the image are returned as
336 zero by getscanline(). This has no effect on the C level i_glin()
337 and i_glinf() API functions which continue to not set the unused
340 - the convert() method now returns an image of the same sample size as
342 https://rt.cpan.org/Ticket/Display.html?id=28492
344 - remove repeated text in Imager::Files
345 http://rt.cpan.org/Ticket/Display.html?id=27589
347 - be even more explicit that scale() and friends don't modify the source
348 image, but return a new image.
349 http://rt.cpan.org/Ticket/Display.html?id=28570
351 - improve the error message from errstr() when you try to load a font
352 for which the driver hasn't been built in Imager.
353 http://rt.cpan.org/Ticket/Display.html?id=27571
355 - transparency is now enabled by default when writing GIF images
356 http://rt.cpan.org/Ticket/Display.html?id=27615
358 - Imager would not load on Windows 98
359 http://rt.cpan.org/Ticket/Display.html?id=27653
361 Imager 0.59 - 14 June 2007
366 - fixes a regression introduced by the fixes for RT 11972
367 http://rt.cpan.org/Ticket/Display.html?id=27546
369 - cropping outside the image would return an Imager object with
370 no low-level image object, instead of returning false.
371 Fixed by: Philip Gwyn (Leolo)
372 http://rt.cpan.org/Ticket/Display.html?id=27509
374 Imager 0.58 - 16 May 2007
377 No significant changes from 0.57_01.
379 Imager 0.57_01 - 11 May 2007
382 - added to_rgb16 to produce a 16-bit/sample version of an image
384 - improve freetype 1.x text output efficiency
388 - search another place for rgb.txt, and check all the places
389 Imager::Color checks when deciding whether to skip testing it
390 http://rt.cpan.org/Ticket/Display.html?id=26064
392 - use a convolution kernel size based on the stddev rather than a
393 fixed size when performing a gaussian blur
394 http://rt.cpan.org/Ticket/Display.html?id=25645
396 - document the difference() method's mindist parameter, and debug it.
398 - put the Imager release number in the Inline::C generated code to
399 regenerate Inline code when a new release of Imager is installed.
400 http://rt.cpan.org/Ticket/Display.html?id=26278
402 - fix rendering on alpha channel images for the FreeType 1.x driver.
403 http://rt.cpan.org/Ticket/Display.html?id=11972
405 - fix rendering on alpha channel images for the T1lib driver.
406 http://rt.cpan.org/Ticket/Display.html?id=11972
408 - reworked library probing, we can now set more than one probe
409 function for a library. Disabled the default (non-freetype-config)
410 library probe and added an extra probe function that searches for
411 both ft2build.h and whatever it includes, and adds -I as needed.
412 Hopefully this will fix build problems like
413 http://www.nntp.perl.org/group/perl.cpan.testers/2007/05/msg472281.html
414 http://rt.cpan.org/Ticket/Display.html?id=26086
416 Imager 0.57 - 30 Apr 2007
419 This is a maintenence release fixing a security issue in Imager.
421 - CRITICAL: a specially crafted compressed BMP file can cause a buffer
422 overflow in malloced memory. There will be further discussion of
423 this issue in the ticket below.
424 http://rt.cpan.org/Ticket/Display.html?id=26811
425 CVE-2007-2459 CVE-2007-2413
426 The descriptions at cve.mitre.org varied in quality, please see the
427 ticket at rt.cpan.org for a more accurate description of the issue.
429 Imager 0.56 - 1 Apr 2007
432 - added support for reading 16-bit/sample PGM/PPM images
434 - added support for writing 16-bit/sample PGM/PPM images
436 - improved performance of reading PBM/PGM/PPM images
438 - added support for writing PBM images if the image is paletted and
439 contains only black and white
441 - added a new make_colors value - "mono"
443 - switched from the svn log Changes to a manual Changes to reduce
446 - new sample code - samples/flasher.pl
450 - CRITICAL: the "Imager" typemap entry (not used by Imager itself)
451 was returning an image object with an extra reference, this
452 resulted in a memory leak.
453 http://rt.cpan.org/Ticket/Display.html?id=24992
455 - fix rendering on alpha channel images for the FreeType 2.x driver
456 http://rt.cpan.org/Ticket/Display.html?id=11972
458 - reading bmp files now consitently handles short reads. You can now
459 supply a parameter to treat a short read as successful and set
461 http://rt.cpan.org/Ticket/Display.html?id=8426
463 - previously, reading ASCII PBM files required spaces between samples,
464 even though the format doesn't require that
466 - improved documentation of the unsharpmask filter (I hope)
467 http://rt.cpan.org/Ticket/Display.html?id=25531
469 - force flushing of the output from i_tt_dump_names() and test output
470 in t/t35ttfont.t to prevent output from being mixed up.
471 https://rt.cpan.org/Ticket/Display.html?id=24859
473 - rewrite a conditional expression as an if() to hopefully work around
474 a bug in the pre-4.0 GCC Apple shipped with OS X 10.4.
475 https://rt.cpan.org/Ticket/Display.html?id=25561
477 - avoid Data::Dumper in regops.perl to support older releases of perl
478 https://rt.cpan.org/Ticket/Display.html?id=24391
480 Imager 0.55 - 16 Dec 2006
483 This is primarily a bug fix release.
485 Note: Test::More is now a pre-requisite for Imager and is no longer bundled.
487 There is one new feature:
489 - the Win32 font driver now supports UTF8 (RT 22166)
490 http://www.cpanforum.com/threads/3276
491 http://rt.cpan.org/Ticket/Display.html?id=22166
493 Several bugs were fixed:
495 - the string() method would not output the string "0"
496 http://rt.cpan.org/Public/Bug/Display.html?id=21770
498 - fills.c was failing to compile on Solaris 10 (compiler unknown)
499 http://rt.cpan.org/Public/Bug/Display.html?id=21944
501 - the gif_disposal and gif_user_input tags weren't being read from
503 http://rt.cpan.org/Public/Bug/Display.html?id=22192
505 - gif.c was failing to build under MSVC
506 http://rt.cpan.org/Ticket/Display.html?id=23922
508 - in some cases strings passed to the string() method were treated as
509 terminated by NUL (chr 0)
510 http://rt.cpan.org/Public/Bug/Display.html?id=21770
512 - on "MSWin32" perl builds we now link to -lzlib instead of -lz since
513 that's the default build name for zlib on Win32.
514 http://rt.cpan.org/Ticket/Display.html?id=23064
516 - search $Config{incpath} for headers too, which we should have been
519 Win32 font driver fixes:
521 - the global descent value from bounding box was the wrong sign
522 http://www.cpanforum.com/threads/3276
524 - if the first or last glyph overflowed the left or right side of the
525 advance width they would be clipped
528 Imager 0.54 - 14 Sep 2006
531 This is primarily a feature release:
533 - a new qtype value 'mixing' has been added to the scale()
534 method. This is faster than 'normal', slower than 'preview'. This
535 is based on the method used by pnmscale, and seems to produce less
536 blurry results than normal.
537 http://rt.cpan.org/Public/Bug/Display.html?id=20677
539 - the rubthrough() method can now render onto images with an alpha
541 http://rt.cpan.org/Ticket/Display.html?id=20678
543 - the read_multi() method now falls back to calling doing a single
544 image read via the read() method and write_multi() will now fall
545 back to calling write() if a single image is supplied. This means
546 you can simply call the read_multi() or write_multi() functions
547 without having to check if the type is formatted by that method.
548 http://rt.cpan.org/Ticket/Display.html?id=19457
549 http://rt.cpan.org/Ticket/Display.html?id=19458
551 - the GIF loop extension can now be written. If you don't have
552 libungif/giflib 4.1.4 (or some distribution's bugfixed equivalent) you
554 http://rt.cpan.org/Ticket/Display.html?id=21185
556 - getscanline() and setscanline() can now read/write palette index
557 based data from/to the image for paletted images, by setting type to
559 http://rt.cpan.org/Ticket/Display.html?id=20338
561 - we no longer hassle you to disable GIF support
562 http://rt.cpan.org/Ticket/Display.html?id=20687
564 - minor documentation fixes
567 Imager 0.53 - 26 Jul 2006
570 This is a bugfix release.
572 Some test code was left in a code path not covered by the test
573 suite. A test was added to cover this code path and the test code was
575 http://rt.cpan.org/Public/Bug/Display.html?id=20705
578 Imager 0.52 - 25 Jul 2006
581 This is primarily a feature release, but contains a fair few bug
584 - ability to read and write MS Windows ICO and CUR files
586 - you can now add file format plugins to support new file formats
588 - add POD coverage tests
590 - setcolors() and addcolors() now accept color names and so on
591 instead of requiring Imager::Color objects.
592 http://rt.cpan.org/Ticket/Display.html?id=20056
594 - flood_fill() can now fill to a specified border color instead of
595 just to the area the same color as the seed.
596 http://rt.cpan.org/Ticket/Display.html?id=19618
601 - bounding_box for the T1 driver wasn't converting UTF8 to ascii when
602 calculating the advance width.
603 http://rt.cpan.org/Public/Bug/Display.html?id=20554
605 - bounding_box for the T1 driver wasn't including leading and
606 trailing spaces in the bounding box as the other drivers did, it also
607 produced strange results for empty strings or strings containing only
610 - when reading CMYK jpeg images they were being transferred to the
611 image object as is, producing a four channel image. It only looked ok
612 due to an old still unfixed Photoshop bug. We now convert from the
613 inverted CMYK that photoshop (and Corel for example) produce into RGB.
614 http://rt.cpan.org/Ticket/Display.html?id=20416
616 - reading a CYMK TIFF would result in a 4 channel image, reading any
617 image with more than 4 channels (eg. RGB with 2 alpha channels) would
619 http://rt.cpan.org/Ticket/Display.html?id=20415
621 - added /usr/local/include to the default include search path, since
622 we were already searching /usr/local/lib for libraries.
624 And various minor fixes and documentation updates.
627 Imager 0.51 - 23 Apr 2006
630 - fix a validation bug when processing JPEG EXIF data that can cause
632 http://rt.cpan.org/Public/Bug/Display.html?id=18496
634 - fix mis-processing of the src_maxx and src_maxy parameters of the
636 http://rt.cpan.org/Public/Bug/Display.html?id=18712
638 - fix a problem in Imager's "smart" handling of the color parameter
640 http://rt.cpan.org/Public/Bug/Display.html?id=18561
643 Imager 0.50 - 29 Mar 2006
646 - CRITICAL: fixes a segmentation fault from attempting to write a 2
647 or 4 channel image to jpeg or a 2 channel image to tga where the
648 output is an in-memeory buffer.
649 http://rt.cpan.org/Public/Bug/Display.html?id=18397
651 - fixes an incorrect pointer parameter in the PNG code
652 http://rt.cpan.org/Public/Bug/Display.html?id=18051
654 - skip Inline::C tests when building in a directory with spaces
655 http://rt.cpan.org/Public/Bug/Display.html?id=18049