1 Imager release history. Older releases can be found in Changes.old
6 - document the return value of the filter() method.
7 https://rt.cpan.org/Ticket/Display.html?id=72369
9 - document i_gsamp_bits() and i_psamp_bits().
10 https://rt.cpan.org/Ticket/Display.html?id=68815
12 - properly increment the Imager::Matrix2d $VERSION.
14 - actually include the Imager::Test tests in the dist
16 - correctly read and write 256x256 pixel ICO files
17 https://rt.cpan.org/Ticket/Display.html?id=69599
19 - make the error message from read() or read_multi() when they can't
20 identify the file type match reality.
21 https://rt.cpan.org/Ticket/Display.html?id=72475
23 - read() now uses $FORMATGUESS if it can't determine the file type
24 based on the file header, to match read_multi().
26 - re-work and add tests for def_guess_type(). def_guess_type() no
27 longer returns any random file extension as the file type.
29 - add gray4, gray16 and gray as presets for make_colors.
30 https://rt.cpan.org/Ticket/Display.html?id=67911
32 - add make_palette() method that produces a palette from one or more
35 - fix the Imager dependency for the separately distributed font
37 https://rt.cpan.org/Ticket/Display.html?id=72643
39 - fix i_render_color() to properly draw in "normal" mode - ie. when
40 writing to a 1 or 3 channel image the second or fourth channel of
41 the source color was being ignored, it is now significant.
42 https://rt.cpan.org/Ticket/Display.html?id=71564
44 Imager 0.86 - 31 Oct 2011
47 - improve error reporting for W32 tests
49 Imager 0.85_02 - 24 Oct 2011
54 - eliminate unused i_gif_opts type (clean-up)
55 https://rt.cpan.org/Ticket/Display.html?id=69245
57 - fix combine=0 fill color anti-aliasing on the double/sample path
58 https://rt.cpan.org/Ticket/Display.html?id=71309
60 - make default text color non-transparent
61 https://rt.cpan.org/Ticket/Display.html?id=71469
63 - apply the last of the Debian unforwarded spelling fixes
64 https://rt.cpan.org/Ticket/Display.html?id=70656
66 - the log() method used its message parameter as a C level format
68 https://rt.cpan.org/Ticket/Display.html?id=71653
70 - provide our own STRLEN typemap entry for older perls.
71 https://rt.cpan.org/Ticket/Display.html?id=71641
73 - add extra ppport.h configuration to support older perls.
75 - depend on Scalar::Util, since we use it and older perls don't have
78 - add overloaded eq to Imager::Matrix2d, since older perls don't seem
79 to synthesize it from overloaded "".
81 - use T1_StrError() for error messages on modern libt1
82 https://rt.cpan.org/Ticket/Display.html?id=69879
84 - actually load the font rather than just adding it to the catalog on
87 - Imager::Font->new now produces better error messages for the T1
90 - the font has_chars() method now returns perl's true and false
91 values in list context rather than integers, which should be more
93 https://rt.cpan.org/Ticket/Display.html?id=69158
95 - the btm data structure used by the flood_fill code is now
96 initialized more efficiently.
97 https://rt.cpan.org/Ticket/Display.html?id=68994
99 - updated the Thanks list in README
100 https://rt.cpan.org/Ticket/Display.html?id=71607
102 - check there's at least one coefficient for the convolution filter
103 https://rt.cpan.org/Ticket/Display.html?id=68993
105 - make the APIRef synopsis ordering consistent, older versions of
106 perl could order it differently.
107 https://rt.cpan.org/Ticket/Display.html?id=71675
109 - we rely on Config.pm's d_vsnprintf as to whether we use
110 vsnprintf/snprintf, which is defined in the Win32 Config.pm even
111 though it only has _ prefixed versions of these. Define our own
112 prefixed names on Win32.
113 https://rt.cpan.org/Ticket/Display.html?id=71642
115 - fix library detection with MSVC
117 - search a few more library directories, so EU::MM doesn't discard
118 them. Hopefully fixes:
119 https://rt.cpan.org/Ticket/Display.html?id=71643
121 Imager 0.85_01 - 10 Oct 2011
124 - add simple tests for the Imager::Test test_image generators
126 - io_glue I/O buffering re-work:
128 - reorganize io_glue to do it's own buffering by default
130 - the unbuffered functions are available as i_io_raw_read() (or
131 raw_read() from perl) etc but are not recommended for typical
134 - use the new i_io_peekn() when checking for file magic to avoid
135 seek, allowing Imager to detect the file type and read the file
136 from an unseekable stream (for formats that don't use random
139 - added several new I/O layer API functions.
141 - fix the TGA performance problem, most noticably on Win32
142 https://rt.cpan.org/Ticket/Display.html?id=70037
144 - TIFF now uses wrapper functions of the correct types to avoid casts
145 https://rt.cpan.org/Ticket/Display.html?id=69912
147 - the callback IO object did its own buffering, controlled by the
148 maxbuffer parameter supplied to the read() and write() methods.
149 This buffering has been removed, to avoid redundancy with the
150 common io_glue buffering. This also avoids a bug in that code
151 which could rarely pass a zero length to the read callback and
152 then panic about the result.
154 - the callback IO object now tests the result of calling the close
155 callback, which should return true for success.
157 - the PNM reader did its own buffering. This buffering has been
158 removed to avoid redundancy with the common io_glue buffering.
160 - previously the read handlers for fd and callback I/O layers would
161 call the underlying interface (POSIX read or your supplied callback)
162 until it filled the buffer. It now only makes one call.
164 - added public constructors for I/O layer objects (see Imager::IO)
166 - all core file handlers now use the i_io_foo() wrappers to gain
167 access to buffered I/O rather than calling the I/O layer
170 - all core file handlers now check for error on close.
172 - Backward compatibility: if you hava custom file handlers, you can
173 use i_io_write() etc since they're available as macros in older
176 - eliminate the final remnants of io_glue_commit_types().
178 - bump IMAGER_API_VERSION, since the above may break assumptions.
180 - removed the long unused i_gen_reader() and i_gen_writer() utility
183 Imager 0.85 - 29 Aug 2011
186 The main changes in the release versus 0.84 are:
188 - on 64-bit systems, 64-bit types are consistently used for image
189 dimensions and co-ordinated, and for memory block sizes.
191 - handle IFD loops in TIFF files correctly. Previously this would
192 lead to an infinite loop.
196 - fix the link in the getheight() entry in the method index
198 Imager 0.84_02 - 22 Aug 2011
201 Development release, this will become 0.85 if CPAN testers is
206 - the image file limits set by set_file_limits() weren't being
207 checked when reading TIFF files.
208 https://rt.cpan.org/Ticket/Display.html?id=69915
210 - Provide more information about file format module load errors on a
211 failed image file read() or write().
212 https://rt.cpan.org/Ticket/Display.html?id=69194
214 - use TIFFReadDirectory() instead of TIFFSetDirectory() to iterate
215 through TIFF images, since it checks for IFD loops.
216 https://rt.cpan.org/Ticket/Display.html?id=69914
218 - don't leak memory when out of range palette indexes are supplied to
220 https://rt.cpan.org/Ticket/Display.html?id=69242
222 - require a later version of CPAN::Meta to ensure JSON::PP and
223 CPAN::Meta::YAML are available.
224 https://rt.cpan.org/Ticket/Display.html?id=69008
226 - hoist the per-line calculations for the flines implementations, and
227 modernize the tests a bit.
228 https://rt.cpan.org/Ticket/Display.html?id=70126
230 - detect snprintf()/vsnprintf() (cheat by using Config.pm) and use
232 https://rt.cpan.org/Ticket/Display.html?id=69147
234 - if t1lib failed to reinitialize it would be left as marked
236 https://rt.cpan.org/Ticket/Display.html?id=69877
238 - update the bundled (and still modified) Devel::CheckLib
239 https://rt.cpan.org/Ticket/Display.html?id=69170
241 Imager 0.84_01 - 8 Aug 2011
244 Development release as a sanity check for the types re-work.
246 Massive types re-work:
248 - the type used internally for pixel co-ordinates and image sizes is
249 now 64-bit on 64-bit platforms (at least sane ones).
251 - size_t is now used consistently for memory block sizes.
253 - since this changes the binary interface, the Imager API version has
254 been incremented. Any module that uses the API will need to be
255 rebuilt. In most cases that will be enough, but calls to any APIs
256 that take a pointer to image sizes may need source changes.
258 - you should be able to create very large images on 64-bit systems,
259 if you have enough memory. Successfully created a 32768 x 49192 x
260 3 channel image, filled with a tiled image and scaled it. The
261 unscaled image was also successfully saved to a JPEG.
263 - check the image size before attempting to write BMP, GIF, JPEG,
264 PNG, SGI, TGA, TIFF images.
266 - correctly handle reading TGA images over 32767 pixels wide or tall.
270 - the gif_left and gif_top tags are now clamped to non-negative
271 values when writing a GIF image.
273 - removed dead callback read/write code
275 The default maximum memory size when reading files is now 1G.
277 Imager 0.84 - 20 Jun 2011
280 - Imager no longer inherits from Exporter (unless you're running an
283 - Imager can now write progressive JPEGs (it could always read them).
284 https://rt.cpan.org/Ticket/Display.html?id=68691
288 - re-work, document and test Imager's logging facility.
289 https://rt.cpan.org/Ticket/Display.html?id=65227
291 - fix META.yml testing and the generated META.yml
292 https://rt.cpan.org/Ticket/Display.html?id=65235
294 - test and add error reporting to to_*() family methods
296 - add to_rgb_double() method.
297 https://rt.cpan.org/Ticket/Display.html?id=65101
299 - Imager no longer exports anything by default
300 https://rt.cpan.org/Ticket/Display.html?id=65228
302 - convert colors to grayscale if the supplied (or generated) palette
303 contains only grays when performing error diffusion color
305 https://rt.cpan.org/Ticket/Display.html?id=68508
307 - writing a paletted image to GIF wouldn't always use the colors
308 supplied (or generated, eg. via make_colors => "mono"), which was
310 https://rt.cpan.org/Ticket/Display.html?id=67912
312 - replace (imager|tony)@imager.perl.org in the doc, since I don't
313 plan to continue receiving mail at that address.
314 https://rt.cpan.org/Ticket/Display.html?id=68591
316 Imager 0.83 - 21 May 2011
321 - diag() the error message on failure for some TIFF tests that are
322 failing on a Solaris smoker.
323 http://www.cpantesters.org/cpan/report/6396db1e-8090-11e0-9682-112b785ebe45
325 Imager 0.82_01 - 17 May 2011
328 Dev release, in case the compose tests are too sensitive.
332 - Imager::Font::T1 incorrectly checked for absolute filename under
333 Win32. Thanks to kmx for the report and fix.
334 https://rt.cpan.org/Ticket/Display.html?id=67963
336 - compose() with the target, source or mask position off the top or
337 left of the target image didn't clip the source image correctly.
338 https://rt.cpan.org/Ticket/Display.html?id=67220
340 - compose() now returns a useful error message on a non-positive
343 - compose.im now at 100% test coverage. (As opposed to, umm, much,
346 Imager 0.82 - 14 Mar 2011
351 - eliminate calls to i_has_format() from the test suite, since it's
352 no longer a useful way to check for file format support. Eliminate
353 i_has_format() from the functions exposed via XS.
354 https://rt.cpan.org/Ticket/Display.html?id=65863
356 - eliminate calls to note(), which isn't in the (very old) version of
357 Test::More we have as a pre-requisite. note() is modern enough
358 that I don't feel a need to require a Test::More upgrade for it.
359 https://rt.cpan.org/Ticket/Display.html?id=65864
361 - skip the threads tests on Test::More 2.00_*
362 https://rt.cpan.org/Ticket/Display.html?id=65812
364 - add an (unshipped) test to check Imager's internal POD links
365 https://rt.cpan.org/Ticket/Display.html?id=65749
367 - improve the library detection summary
368 https://rt.cpan.org/Ticket/Display.html?id=9675
370 - increase the version of Imager::Font::Type1 so that upgrades don't
371 downgrade the version in this file.
372 https://rt.cpan.org/Ticket/Display.html?id=66250
374 - if we see an -rpath (or -R) option in $Config{lddlflags} supply
375 that option for the directories that would normally go in
376 LD_RUN_PATH. Typically an explicit -rpath overrides LD_RUN_PATH.
377 https://rt.cpan.org/Ticket/Display.html?id=65955
379 Imager 0.81 - 14 Feb 2011
382 - added coverage tests for masked images (maskimg.c @100% test coverage)
384 - add hsv() method to Imager::Color
385 Thanks to Leolo (Philip Gwyn)
386 https://rt.cpan.org/Ticket/Display.html?id=65385
388 - split libt1 Type 1 font support into a sub-module
389 https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
391 - add a preload() class method for use in forking servers, and to
392 work around limitations in PAR.
393 https://rt.cpan.org/Ticket/Display.html?id=65665
397 - paletted writes to a masked image are now masked correctly.
398 Revealed by new coverage tests.
400 - update the filter plugin documentation.
401 https://rt.cpan.org/Ticket/Display.html?id=56513
403 - add the matrix() method to Imager::Matrix2d to allow creation of a
404 matrix with specified co-efficients. You can now multiple an
405 Imager::Matrix2d object by a 9 element array ref or a number.
406 https://rt.cpan.org/Ticket/Display.html?id=29938
408 - really fix loading TTF fonts with FT2 when FT1 isn't available.
409 Thanks to Leolo (Philip Gwyn)
410 https://rt.cpan.org/Ticket/Display.html?id=65386
411 https://rt.cpan.org/Ticket/Display.html?id=62855
413 - make sure each test script that needs testout/ creates it.
414 https://rt.cpan.org/Ticket/Display.html?id=65088
416 - handle a slightly different warning from libtiff 4.x
417 https://rt.cpan.org/Ticket/Display.html?id=65268
419 - the sat transform2() op returned an incorrect saturation.
420 https://rt.cpan.org/Ticket/Display.html?id=65391
422 Imager 0.80 - 17 Jan 2011
425 - added coverage tests for Imager::Fountain and Imager::Color::Float
427 - Imager is now maintained in git
428 http://git.imager.perl.org/imager.git
429 git://git.imager.perl.org/imager.git
433 - images with an translucent alpha channel were not scaled correctly
434 by the default (qtype=normal) scaling method.
435 https://rt.cpan.org/Public/Bug/Display.html?id=63922
437 - Imager::Color::Float now translates "#FFFFFF" to white instead of
438 just a little darker.
440 - make the default color map build algorithm "mediancut". This
441 changes the default color map builder for writing GIFs back to what
442 it was in 0.77, reverting a performance regression.
443 https://rt.cpan.org/Ticket/Display.html?id=64785
445 - handle failure to create a masked image correctly
447 Imager 0.79 - 10 Dec 2010
450 - add Imager::Test to the POD coverage tests and document the missing
453 - the convert() method now optimizes the case where all output
454 channels are either 0, sourced from a single input channel or 1.
455 This significantly speeds up presets like "addalpha", "green".
456 https://rt.cpan.org/Ticket/Display.html?id=51254
458 - add wiggle.pl sample, as suggested by Dan Oppenheim.
460 - add the combine() method to combine channels from multiple source
461 images into a new image
462 https://rt.cpan.org/Ticket/Display.html?id=11872
466 - treat the co-efficients for convert() as doubles instead of floats.
468 - If a higher (earlier) priority font handler failed to load, that
469 would crash preventing loading of later font handlers.
470 https://rt.cpan.org/Ticket/Display.html?id=62855
472 - parse defines from the options returned by pkg-config --cflags
473 https://rt.cpan.org/Ticket/Display.html?id=63223
475 - a regen of the MANIFEST revealed that GIF and FT2 tests weren't
476 included in the tarball. They are now included.
478 Imager 0.78 - 4 Oct 2010
483 - don't access deprecated members of the png_structp.
484 https://rt.cpan.org/Ticket/Display.html?id=60242
486 - document that using color objects is faster than supplying colors
488 https://rt.cpan.org/Ticket/Display.html?id=61047
490 - Imager::Probe now accepts array references for incpath and libpath.
491 https://rt.cpan.org/Ticket/Display.html?id=60244
493 Imager 0.77_02 - 27 Sep 2010
496 - moved Win32, FreeType 2 font support into sub-modules.
497 https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
498 Uses Imager::Probe now.
499 https://rt.cpan.org/Public/Bug/Display.html?id=61328
501 - tested successfully with jpeg-8b
502 https://rt.cpan.org/Ticket/Display.html?id=60221
506 - from _01: look for missing file support test files in the right
509 - flood_fill() wouldn't fill the right side of a single scan-line
511 Thanks to Nicolas Roggli for reporting this.
513 - flood_fill wouldn't fill to the left edge of the image if the
514 starting line didn't reach the left edge.
515 Thanks to Nicolas Roggli for reporting this.
517 Imager 0.77_01 - 13 Sep 2010
520 - add each library-directory/pkgconfig/ to the pkg-config search path
522 Thanks to Justin Davis.
523 https://rt.cpan.org/Ticket/Display.html?id=60491
525 - moved GIF, TIFF, JPEG file handling code into sub-modules in
526 preparation for separate distribution.
527 https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
529 - optimize filled box drawing (color, not fill)
533 - Imager::Probe was calling ExtUtils::Liblist to initialize
534 LD_RUN_PATH supplying an undefined value rather than the found
535 directory. Thanks to Justin Davis.
536 https://rt.cpan.org/Ticket/Display.html?id=60491
538 - only prepend ./ to font filenames when passing them to T1Lib and
539 then only when it would use its search mechanisms.
540 https://rt.cpan.org/Ticket/Display.html?id=60509
542 - fix the cache check for the X rgb.txt loader. This is typically
543 used for color translation on Unix-like systems, and the fix
544 improves performance of supplying colors by name by about 80 times.
545 Test code that managed 3400 10x10 pixel boxes/second sped up to
548 - clarify that Imager doesn't write EXIF metadata to images.
549 https://rt.cpan.org/Ticket/Display.html?id=60637
551 - Imager::Probe can now search subdirectories under its include path.
552 Used by the PNG Makefile.PL to find headers and libraries when they
553 aren't in the base directory, as in cygwin.
554 https://rt.cpan.org/Ticket/Display.html?id=60635
556 Imager 0.77 - 11 Aug 2010
559 I don't want Imager::File::PNG indexed as part of Imager, but forgot
560 to update the META.yml before updating the version.
562 - don't index Imager::File::PNG as part of Imager
564 - add resources to META.yml
566 Imager 0.76 - not released
571 - the align_string() method would ignore a string of "0" due to a
573 Thanks to Maurice Height for reporting this.
574 https://rt.cpan.org/Ticket/Display.html?id=60199
576 Imager 0.75_03 - 09 Aug 2010
581 - read_types() and write_types() would include png when it wasn't
582 available due to a problem with the %formats tie
584 - handle dependent libraries correctly (eg -lpng requiring -lz) in
585 the code run phase of library probing.
587 Imager 0.75_02 - 07 Aug 2010
592 - add file missing from MANIFEST, which was causing TIFF failures.
594 Imager 0.75_01 - 06 Aug 2010
597 Test release for the new PNG probe.
599 - added the ability to read multiple-image PNM files.
600 Note that unlike the pbm/pgm/ppm specification this accepts mixed
601 format files and allows white space padding between files.
602 Thanks to Philip Gwyn (Leolo) for this patch.
604 - moved the PNG file handling code into a sub-module in preparation
605 for separate distribution.
606 https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
607 Also helps avoid complications from -I/-L compile/link options from
612 - Imager->new(data => $data) didn't try to process image file data in
614 https://rt.cpan.org/Ticket/Display.html?id=58761
616 - t/t50basicoo.t no longer depends on the other tests to generate its
618 https://rt.cpan.org/Ticket/Display.html?id=9798
619 Also, it wasn't testing pnm (pnm vs ppm mix-up)
621 - update the documentation of hardinvert to match the change in 0.62.
622 https://rt.cpan.org/Ticket/Display.html?id=59785
624 - added hardinvertall filter which also inverts the alpha channel
627 - when probing for TIFF, set LD_RUN_PATH just as the Makefile does so
628 the probe can find the library for the test run.
629 https://rt.cpan.org/Ticket/Display.html?id=57518
631 Imager 0.75 - 20 Jun 2010
634 - use PERL_NO_GET_CONTEXT to slightly improve performance on threaded
639 - an opacity fill based on a fountain fill would segfault when
640 filling an 8-bit/sample image.
642 - merge thickline branch polygon fix
643 https://rt.cpan.org/Ticket/Display.html?id=43518
645 Imager 0.74 - 7 May 2010
650 - read_multi() didn't handle a missing file format library correctly,
651 aborting on failing to call i_readgif_multi_wiol() or
652 i_readtiff_multi_wiol().
654 - fix spelling errors patched by Debian
655 http://svn.debian.org/viewsvn/pkg-perl/trunk/libimager-perl/debian/patches/spelling.patch?revision=54839&view=markup
657 - add an (unshipped) author test to spellcheck Imager's POD.
659 - update the TIFF file format documentation
660 https://rt.cpan.org/Ticket/Display.html?id=56510
662 - lib/Imager/IO.pod was written almost 4 years ago but never shipped.
664 Imager 0.73 - 15 Mar 2010
667 - implement outline circles, both anti-aliased and not
668 https://rt.cpan.org/Ticket/Display.html?id=19755
670 - a combine => "none" fill to a 1 or 3 channel image would produce
671 the incorrect colour.
673 Imager 0.72 - 09 Dec 2009
676 Bump version for release, since 0.71_03 is stable with CPAN testers.
678 Imager 0.71_03 - 5 Dec 2009
681 - further adjust the threads test so it only performs the tests on
682 perls where it's expected to work, and only if the threads module
685 Imager 0.71_02 - 1 Dec 2009
688 - adjust the way we load the threads module for the threads test so
689 it works with non-threaded perls
691 Imager 0.71_01 - 30 Nov 2009
696 - use scanline oriented operations to flip images instead of pixel
698 https://rt.cpan.org/Ticket/Display.html?id=39278
700 - use double/sample operations to flip large sample images instead of
701 8-bit sample operations.
702 https://rt.cpan.org/Ticket/Display.html?id=39280
705 https://rt.cpan.org/Ticket/Display.html?id=51874
707 - prevent double-frees when someone creates Imager objects and then
708 creates a thread. Note: this just handles some simple cases,
709 Imager doesn't support perl threads, and isn't likely to.
710 https://rt.cpan.org/Ticket/Display.html?id=52268
712 Imager 0.71 - 16 Nov 2009
715 - add the opacity fill type - an adaptor that modifies the opacity of
720 - the conv filter now enforces that the sum of the coefficients is
721 non-zero. Also, rather than skipping pixels off the edge off the
722 edge of the image, the closest edge pixel is used. Previously
723 dividing by the zero sum of coefficients could cause invalid
724 results or runtime exceptions.
725 Thanks to David Cantrell's Alpha-NetBSD CPAN test box for revealing
728 Imager 0.70 - 21 Sep 2009
733 - release image row and comments memory on all error returns in gif
736 - handle zero length extensions, previously this would cause a null
738 Thanks to Krzysztof Wojtaś for the test data and fix for this.
740 - an integer division meant that preview scaling to below 1 pixel
741 wide or high (which isn't too useful anyway) was calculating using
742 NaNs on most platforms, and causing an exception on others.
743 Thanks to David Cantrell for producing a backtrace of the crash on
744 his Alpha-NetBSD CPAN test box which made it possible to track this
747 Imager 0.69 - 08 Sep 2009
752 - broken test fix - was attempting to call a function skip_all, when
753 that should be a parameter to plan().
755 - briefly document apidocs.perl, the tool used to build
756 Imager::APIRef and make some minor enhancements
758 - various minor documentation enhancements and fixes.
760 Imager 0.68 - 07 Sep 2009
763 - Imager->new(file => $filename) and other similar incantations will
765 https://rt.cpan.org/Ticket/Display.html?id=48261
769 - avoid using CHECK as a label in Imager::Test
770 http://nntp.x.perl.org/group/perl.cpan.testers/5220921
772 - re-work most image file test files that require a library into
773 separate library present/not present files to remove stupidly long
776 - don't treat rubthrough() outside the bounds of the target image as
778 http://nntp.x.perl.org/group/perl.cpan.testers/5185716
780 Imager 0.67_01 - 02 Sep 2009
785 - correct documentation of default of raw image interleave read
787 https://rt.cpan.org/Ticket/Display.html?id=42074
789 - add raw_ prefix to raw read parameters, though the original names
792 - fail the read if an invalid raw_interleave parameter is supplied
794 - warn if no interleave or raw_interleave parameter is supplied,
795 since the documented default was wrong, and incompatible with the
798 - for reading raw images, if raw_storechannels > raw_datachannels,
799 set the extra channels in the image to 0
801 - when probing for executables like freetype-config, search for .bat
802 and .cmd on MSWin32, as well as .exe.
803 https://rt.cpan.org/Ticket/Display.html?id=49275
805 - re-work the external libraries section of README:
806 - list Debian and Redhat package names for each library
810 - use the new EU::MM META_MERGE facility instead of generating
811 META.yml from scratch
812 https://rt.cpan.org/Ticket/Display.html?id=47888
814 - use Devel::CheckLib (bundled, modified) to check which release of
815 libtiff is installed and reject 3.9.0
816 http://bugzilla.maptools.org/show_bug.cgi?id=2088
817 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=543079
819 Imager 0.67 - 12 Dec 2008
824 - fix a packaging error
826 Imager 0.66 - 12 Dec 2008
829 - 24-bit color .ICO/.CUR files can now be read.
833 - an optimization skipping 0 src alpha values could cause the
834 rubthrough() to read past the end of a buffer.
835 http://www.nntp.perl.org/group/perl.cpan.testers/2008/05/msg1509184.html
837 - corrected a reference leak where writing GIFs would leak memory.
838 This could also happen calling to_paletted().
839 Also documented the underlying long existing feature where the
840 colors parameter is filled with the generated color table and added
842 http://rt.cpan.org/Ticket/Display.html?id=41028
844 - write out the image size in bytes field of a BMP correctly.
845 http://rt.cpan.org/Ticket/Display.html?id=41406
847 - add limited tests for Imager::ExtUtils
849 - make Imager::ExtUtils->includes use an absolute path, since
850 a relative path could cause failures using Inline::C.
851 http://rt.cpan.org/Ticket/Display.html?id=37353
853 - re-arrange the POD for Imager::Font::BBox:
854 - mark total_width(), pos_width(), end_offset() obsolete, since
855 they're mostly for backwards compatibility
856 - group width methods and height methods
857 https://rt.cpan.org/Ticket/Display.html?id=39999
859 Imager 0.65 - 20 May 2008
864 - In some cases when an error occurs reading those parts of a JPEG
865 file after the image the scan-line buffer could be freed a second
866 time. In cases where the the error occured while reading the image
867 data it's possible that the buffer could have leaked.
868 Thanks to Gabriel Vasseur for reporting this and help in tracking
871 - the gif_screen_height tag was overriding the screen width and being
872 ignored for the screen height when present.
873 https://rt.cpan.org/Public/Bug/Display.html?id=35568
875 Imager 0.64 - 23 April 2008
878 This is a bug fix release. This includes a fix for a possible
883 - Possible security issue: The floating point sample path for image
884 based fills had a buffer overflow. This would overwrite the end of
885 a malloc()ed buffer with double precision floats.
886 http://rt.cpan.org/Ticket/Display.html?id=35324
889 - check that the result of fileno($fh) is defined rather than simply
890 true when read() or write() is supplied with an fh parameter.
891 http://rt.cpan.org/Ticket/Display.html?id=35139
893 - i_scale_axis() wasn't checking the result of i_img_new_ch()
894 resulting in a SIGSEGV when attempting to scale an image to a size
895 too large to fit in memory. This is a NULL pointer access issue,
896 not a buffer overflow.
897 Added a check for the failure.
898 scale_calculate() (and hence scale()) will now fail if any of the
899 scale size parameters are a reference.
900 http://rt.cpan.org/Ticket/Display.html?id=35172
902 - Regression: filling a greyscale image with a hatch used the wrong
903 color channels from the supplied fg/bg colors.
904 https://rt.cpan.org/Ticket/Display.html?id=35278
906 - fixed a related problem for image fills.
908 Imager 0.63 - 7 April 2008
911 This release primarily contains changes to improve ease of use -
912 rather than you having to convert images to the appropriate number of
913 channels, Imager handles it internally. How to handle drawing colors
914 and the default combine mode is a thornier problem left for some other
917 - the font libraries are now only initialized when needed.
918 http://rt.cpan.org/Ticket/Display.html?id=28825
920 - moved the imtoc.perl code into Imager::Preprocess
922 - paste() and rubthrough() now adapt the source image data to the
923 destination, so you can now safely paste/rubthrough from greyscale
924 images to color images or back, or from alpha channel images to
925 noalpha channels or back.
926 https://rt.cpan.org/Ticket/Display.html?id=30908
928 - rubthrough() now falls back to pasting when the source doesn't have
929 an alpha channel. This effectively treats the source as having a
930 max alpha channel, the right thing to do.
931 http://rt.cpan.org/Ticket/Display.html?id=29944
933 - re-worked most of the area filling code to use a common set of
934 functions when filling.
935 Corrected normal combine mode.
936 Rewrote most of the combine modes to match the way the SVG draft
937 defines them with respect to a translucent source and destination.
938 Added tests for translucent source and destination.
939 Added tests to check 8-bit/sample and double/sample combines work
941 https://rt.cpan.org/Ticket/Display.html?id=29879
943 - writing a 2 or 4 channel image to a JPEG file will now write that
944 image as if composited against a background, black by default,
945 overridable with the i_background tag/parameter.
946 https://rt.cpan.org/Ticket/Display.html?id=29876
948 - writing a 2 or 4 channel image to a PGM/PPM file will now write
949 that image as if composited against a background, black by default,
950 overridable with the i_background tag/parameter.
951 http://rt.cpan.org/Ticket/Display.html?id=30074
953 - writing a 2 or 4 channel image to a BMP file will now write that
954 image as if composited against a background, black by default,
955 overridable with the i_background tag/parameter.
956 http://rt.cpan.org/Ticket/Display.html?id=30075
960 - Imager::Matrix2d->translate() now only requires one of the x or y
962 http://rt.cpan.org/Ticket/Display.html?id=29937
964 - mixing qtype scaling now sets all channels of a pixel to zero if
965 the pixel has zero coverage (zero alpha). This should produce more
966 compressible output files.
967 http://rt.cpan.org/Ticket/Display.html?id=32324
969 - removed the pointless #! line from lib/Imager/Font/Wrap.pm
971 https://bugzilla.redhat.com/show_bug.cgi?id=166254
972 I'm not changing the #! lines of the sample code, since it's sample
973 code, not intended for installation.
974 http://rt.cpan.org/Ticket/Display.html?id=33408
976 - some TGA images weren't being detected correctly as TGA images
977 https://rt.cpan.org/Ticket/Display.html?id=32925
979 - handling of the left-over bit for 16-bit/pixel TGA images has been
980 changed to match the behaviour of the GIMP. Previously the bit
981 being set was treated as an opaque pixel, but one user reported a
982 problem with loading such an image. I haven't been able to find any
983 tools beyond the GIMP that handle alpha-channel 16-bit TGAs, so
984 I'll match it's behaviour. See issue 114913 in the GIMP's
986 http://rt.cpan.org/Ticket/Display.html?id=32926
988 Imager 0.62 - 10 December 2007
991 - Makefile.PL now expands ~/path supplied to --incpath or --libpath
992 to /path under your home directory.
993 http://rt.cpan.org/Ticket/Display.html?id=29484
995 - the old dynaload code used Mach API functions to load dynamic
996 libraries on Mac OS X. These APIs have been deprecated in OS X
997 10.5 and were causing some build problems.
998 So henceforth Imager uses the dlopen() family of functions, and you
999 will need version 10.3 or later of OS X.
1001 - added the det() function to the transform2() engine.
1002 added the sample quad_to_square.pl
1003 Courtesy Richard Fairhurst.
1004 http://rt.cpan.org/Ticket/Display.html?id=31244
1008 - samples/gifscale.pl sourced the base value for gif_top from
1010 Thanks to Eleneldil G. Arilou for pointing this out.
1012 - t/t82inline.t no longer loads B at runtime, to work around a bug
1013 in some 5.005_0[45] installations.
1014 http://rt.cpan.org/Ticket/Display.html?id=30508
1016 - work around Module::Depends::Intrusive bug #21229
1017 http://rt.cpan.org/Ticket/Display.html?id=30520
1019 - the hardinvert filter no-longer inverts the alpha channel.
1020 http://rt.cpan.org/Ticket/Display.html?id=30002
1022 - the hardinvert filter now supports large samples
1024 Imager 0.61_02 - 28 November 2007
1027 - major TIFF support re-work
1028 http://rt.cpan.org/Ticket/Display.html?id=20329
1030 - added a C level image interface for accessing samples from 1-32
1031 bits, exposed this at the perl level in getsamples()
1033 - the conv filter now works at floating point precision for high bit
1036 - added is_bilevel method to test whether an image should be written as
1037 a bilevel image if the image format supports it.
1039 - added -log-stderr as an Imager import list option
1041 - added some important types to Imager::APIRef
1043 - added test_image_double() to Imager::Test
1047 - Imager::Fountain couldn't read GIMP gradient files with 10 or more
1050 - the scale() method with qtype mixing now handles images with an
1051 alpha channel correctly.
1053 - fixed a broken link from the "animated GIF" entry in the concept index.
1054 Thanks to Slaven Rezic.
1055 http://rt.cpan.org/Ticket/Display.html?id=30889
1057 - on some perl's the infix expression parser test would fail due to
1058 actions in the grammar returning false. Made sure all actions return
1060 Thanks to Richard Fairhurst for spending a lot of time in tracking
1062 http://rt.cpan.org/Public/Bug/Display.html?id=29562
1064 Imager 0.61 - 5 November 2007
1067 - added samples/gifscale.pl, which adjusts the screen size/position tags
1068 when scaling an animated gif
1069 http://rt.cpan.org/Ticket/Display.html?id=27591
1073 - correct handling of sz in matrix_transform() - this should allow
1074 perspective type transformations to work now.
1075 http://rt.cpan.org/Ticket/Display.html?id=29936
1077 - prevent a cast to integer warning on x64 builds in datatypes.c
1078 also fixed some other type warnings
1079 https://rt.cpan.org/Ticket/Display.html?id=30204
1081 - some sub-directory tests depended on files produced by the parent
1083 http://rt.cpan.org/Ticket/Display.html?id=30203
1085 - Imager::Font::Wrap doesn't correctly set savepos
1086 thanks to Nikita Dedik and Eleneldil G. Arilou for reporting this.
1087 http://rt.cpan.org/Ticket/Display.html?id=29771
1089 - test 171 in t/t01introvert.t was failing on perls configured to
1091 http://rt.cpan.org/Ticket/Display.html?id=29413
1093 - the code for the transform2() uminus operator was missing a break.
1094 Added tests for better code coverage of the ops.
1095 http://rt.cpan.org/Ticket/Display.html?id=29296
1097 - the SGI RLE compression code could overflow its compression buffer
1098 http://rt.cpan.org/Ticket/Display.html?id=30334
1100 - the 32-bit output function used by the SGI code only handled values
1101 under 0x10000. This was most noticable when writing large RLE images.
1102 http://rt.cpan.org/Ticket/Display.html?id=30335
1104 - validate chan_count for chans == NULL for each of the i_gsamp()
1106 http://rt.cpan.org/Ticket/Display.html?id=28985
1108 - attempt to work around the test failure at
1109 http://www.nntp.perl.org/group/perl.cpan.testers/2007/09/msg650810.html
1110 http://rt.cpan.org/Ticket/Display.html?id=29562
1112 - improve the error messages produced when attempting to read or write
1113 an unknown image file format.
1114 http://rt.cpan.org/Ticket/Display.html?id=30103
1116 - improve the transform2() documentation
1117 http://rt.cpan.org/Ticket/Display.html?id=29267
1119 - correctly generate the author key in META.yml
1120 http://rt.cpan.org/Ticket/Display.html?id=30377
1122 - correctly blend a rotated (or matrix_transformed()) image when
1123 performing interpolation in the presence of an alpha channel.
1124 Also corrected the centring of the rotated image on the output
1127 Imager 0.60 - 30 August 2007
1130 - Finished/rewrote Arnar's old SGI RGB file format support, so Imager
1131 now has full SGI RGB image format, including RLE and 16-bit/sample
1133 https://rt.cpan.org/Ticket/Display.html?id=8666
1135 - logging functions are now available in the API
1137 - applied Gabriel Vasseur's patch
1138 added documentation, further tests, and support for greyscale images
1139 Obviously problems are my fault :)
1140 https://rt.cpan.org/Ticket/Display.html?id=28142
1142 - the mask for ICO/CUR images is now applied as an alpha channel to
1143 the returned image. For the old behaviour, supply ico_masked => 0
1144 to read() or read_multi(). This should be less confusing when
1145 using Imager as a general image processor.
1146 https://rt.cpan.org/Ticket/Display.html?id=29001
1150 - in some cases it's possible for giflib/libungif to return color
1151 indexes outside the range of colors defined by the image's palette.
1152 We now expand the palette to match the indexes used.
1153 Thanks to Gabriel Vasseur for reporting this.
1155 - fixed various memory leaks that could occur when failing to read png,
1156 jpeg, bmp or tga files.
1158 - to avoid confusion, channels not present in the image are returned as
1159 zero by getscanline(). This has no effect on the C level i_glin()
1160 and i_glinf() API functions which continue to not set the unused
1163 - the convert() method now returns an image of the same sample size as
1165 https://rt.cpan.org/Ticket/Display.html?id=28492
1167 - remove repeated text in Imager::Files
1168 http://rt.cpan.org/Ticket/Display.html?id=27589
1170 - be even more explicit that scale() and friends don't modify the source
1171 image, but return a new image.
1172 http://rt.cpan.org/Ticket/Display.html?id=28570
1174 - improve the error message from errstr() when you try to load a font
1175 for which the driver hasn't been built in Imager.
1176 http://rt.cpan.org/Ticket/Display.html?id=27571
1178 - transparency is now enabled by default when writing GIF images
1179 http://rt.cpan.org/Ticket/Display.html?id=27615
1181 - Imager would not load on Windows 98
1182 http://rt.cpan.org/Ticket/Display.html?id=27653
1184 Imager 0.59 - 14 June 2007
1189 - fixes a regression introduced by the fixes for RT 11972
1190 http://rt.cpan.org/Ticket/Display.html?id=27546
1192 - cropping outside the image would return an Imager object with
1193 no low-level image object, instead of returning false.
1194 Fixed by: Philip Gwyn (Leolo)
1195 http://rt.cpan.org/Ticket/Display.html?id=27509
1197 Imager 0.58 - 16 May 2007
1200 No significant changes from 0.57_01.
1202 Imager 0.57_01 - 11 May 2007
1205 - added to_rgb16 to produce a 16-bit/sample version of an image
1207 - improve freetype 1.x text output efficiency
1211 - search another place for rgb.txt, and check all the places
1212 Imager::Color checks when deciding whether to skip testing it
1213 http://rt.cpan.org/Ticket/Display.html?id=26064
1215 - use a convolution kernel size based on the stddev rather than a
1216 fixed size when performing a gaussian blur
1217 http://rt.cpan.org/Ticket/Display.html?id=25645
1219 - document the difference() method's mindist parameter, and debug it.
1221 - put the Imager release number in the Inline::C generated code to
1222 regenerate Inline code when a new release of Imager is installed.
1223 http://rt.cpan.org/Ticket/Display.html?id=26278
1225 - fix rendering on alpha channel images for the FreeType 1.x driver.
1226 http://rt.cpan.org/Ticket/Display.html?id=11972
1228 - fix rendering on alpha channel images for the T1lib driver.
1229 http://rt.cpan.org/Ticket/Display.html?id=11972
1231 - reworked library probing, we can now set more than one probe
1232 function for a library. Disabled the default (non-freetype-config)
1233 library probe and added an extra probe function that searches for
1234 both ft2build.h and whatever it includes, and adds -I as needed.
1235 Hopefully this will fix build problems like
1236 http://www.nntp.perl.org/group/perl.cpan.testers/2007/05/msg472281.html
1237 http://rt.cpan.org/Ticket/Display.html?id=26086
1239 Imager 0.57 - 30 Apr 2007
1242 This is a maintenence release fixing a security issue in Imager.
1244 - CRITICAL: a specially crafted compressed BMP file can cause a buffer
1245 overflow in malloced memory. There will be further discussion of
1246 this issue in the ticket below.
1247 http://rt.cpan.org/Ticket/Display.html?id=26811
1248 CVE-2007-2459 CVE-2007-2413
1249 The descriptions at cve.mitre.org varied in quality, please see the
1250 ticket at rt.cpan.org for a more accurate description of the issue.
1252 Imager 0.56 - 1 Apr 2007
1255 - added support for reading 16-bit/sample PGM/PPM images
1257 - added support for writing 16-bit/sample PGM/PPM images
1259 - improved performance of reading PBM/PGM/PPM images
1261 - added support for writing PBM images if the image is paletted and
1262 contains only black and white
1264 - added a new make_colors value - "mono"
1266 - switched from the svn log Changes to a manual Changes to reduce
1269 - new sample code - samples/flasher.pl
1273 - CRITICAL: the "Imager" typemap entry (not used by Imager itself)
1274 was returning an image object with an extra reference, this
1275 resulted in a memory leak.
1276 http://rt.cpan.org/Ticket/Display.html?id=24992
1278 - fix rendering on alpha channel images for the FreeType 2.x driver
1279 http://rt.cpan.org/Ticket/Display.html?id=11972
1281 - reading bmp files now consitently handles short reads. You can now
1282 supply a parameter to treat a short read as successful and set
1284 http://rt.cpan.org/Ticket/Display.html?id=8426
1286 - previously, reading ASCII PBM files required spaces between samples,
1287 even though the format doesn't require that
1289 - improved documentation of the unsharpmask filter (I hope)
1290 http://rt.cpan.org/Ticket/Display.html?id=25531
1292 - force flushing of the output from i_tt_dump_names() and test output
1293 in t/t35ttfont.t to prevent output from being mixed up.
1294 https://rt.cpan.org/Ticket/Display.html?id=24859
1296 - rewrite a conditional expression as an if() to hopefully work around
1297 a bug in the pre-4.0 GCC Apple shipped with OS X 10.4.
1298 https://rt.cpan.org/Ticket/Display.html?id=25561
1300 - avoid Data::Dumper in regops.perl to support older releases of perl
1301 https://rt.cpan.org/Ticket/Display.html?id=24391
1303 Imager 0.55 - 16 Dec 2006
1306 This is primarily a bug fix release.
1308 Note: Test::More is now a pre-requisite for Imager and is no longer bundled.
1310 There is one new feature:
1312 - the Win32 font driver now supports UTF8 (RT 22166)
1313 http://www.cpanforum.com/threads/3276
1314 http://rt.cpan.org/Ticket/Display.html?id=22166
1316 Several bugs were fixed:
1318 - the string() method would not output the string "0"
1319 http://rt.cpan.org/Public/Bug/Display.html?id=21770
1321 - fills.c was failing to compile on Solaris 10 (compiler unknown)
1322 http://rt.cpan.org/Public/Bug/Display.html?id=21944
1324 - the gif_disposal and gif_user_input tags weren't being read from
1326 http://rt.cpan.org/Public/Bug/Display.html?id=22192
1328 - gif.c was failing to build under MSVC
1329 http://rt.cpan.org/Ticket/Display.html?id=23922
1331 - in some cases strings passed to the string() method were treated as
1332 terminated by NUL (chr 0)
1333 http://rt.cpan.org/Public/Bug/Display.html?id=21770
1335 - on "MSWin32" perl builds we now link to -lzlib instead of -lz since
1336 that's the default build name for zlib on Win32.
1337 http://rt.cpan.org/Ticket/Display.html?id=23064
1339 - search $Config{incpath} for headers too, which we should have been
1342 Win32 font driver fixes:
1344 - the global descent value from bounding box was the wrong sign
1345 http://www.cpanforum.com/threads/3276
1347 - if the first or last glyph overflowed the left or right side of the
1348 advance width they would be clipped
1351 Imager 0.54 - 14 Sep 2006
1354 This is primarily a feature release:
1356 - a new qtype value 'mixing' has been added to the scale()
1357 method. This is faster than 'normal', slower than 'preview'. This
1358 is based on the method used by pnmscale, and seems to produce less
1359 blurry results than normal.
1360 http://rt.cpan.org/Public/Bug/Display.html?id=20677
1362 - the rubthrough() method can now render onto images with an alpha
1364 http://rt.cpan.org/Ticket/Display.html?id=20678
1366 - the read_multi() method now falls back to calling doing a single
1367 image read via the read() method and write_multi() will now fall
1368 back to calling write() if a single image is supplied. This means
1369 you can simply call the read_multi() or write_multi() functions
1370 without having to check if the type is formatted by that method.
1371 http://rt.cpan.org/Ticket/Display.html?id=19457
1372 http://rt.cpan.org/Ticket/Display.html?id=19458
1374 - the GIF loop extension can now be written. If you don't have
1375 libungif/giflib 4.1.4 (or some distribution's bugfixed equivalent) you
1377 http://rt.cpan.org/Ticket/Display.html?id=21185
1379 - getscanline() and setscanline() can now read/write palette index
1380 based data from/to the image for paletted images, by setting type to
1382 http://rt.cpan.org/Ticket/Display.html?id=20338
1384 - we no longer hassle you to disable GIF support
1385 http://rt.cpan.org/Ticket/Display.html?id=20687
1387 - minor documentation fixes
1390 Imager 0.53 - 26 Jul 2006
1393 This is a bugfix release.
1395 Some test code was left in a code path not covered by the test
1396 suite. A test was added to cover this code path and the test code was
1398 http://rt.cpan.org/Public/Bug/Display.html?id=20705
1401 Imager 0.52 - 25 Jul 2006
1404 This is primarily a feature release, but contains a fair few bug
1405 fixes, new features:
1407 - ability to read and write MS Windows ICO and CUR files
1409 - you can now add file format plugins to support new file formats
1411 - add POD coverage tests
1413 - setcolors() and addcolors() now accept color names and so on
1414 instead of requiring Imager::Color objects.
1415 http://rt.cpan.org/Ticket/Display.html?id=20056
1417 - flood_fill() can now fill to a specified border color instead of
1418 just to the area the same color as the seed.
1419 http://rt.cpan.org/Ticket/Display.html?id=19618
1424 - bounding_box for the T1 driver wasn't converting UTF8 to ascii when
1425 calculating the advance width.
1426 http://rt.cpan.org/Public/Bug/Display.html?id=20554
1428 - bounding_box for the T1 driver wasn't including leading and
1429 trailing spaces in the bounding box as the other drivers did, it also
1430 produced strange results for empty strings or strings containing only
1433 - when reading CMYK jpeg images they were being transferred to the
1434 image object as is, producing a four channel image. It only looked ok
1435 due to an old still unfixed Photoshop bug. We now convert from the
1436 inverted CMYK that photoshop (and Corel for example) produce into RGB.
1437 http://rt.cpan.org/Ticket/Display.html?id=20416
1439 - reading a CYMK TIFF would result in a 4 channel image, reading any
1440 image with more than 4 channels (eg. RGB with 2 alpha channels) would
1442 http://rt.cpan.org/Ticket/Display.html?id=20415
1444 - added /usr/local/include to the default include search path, since
1445 we were already searching /usr/local/lib for libraries.
1447 And various minor fixes and documentation updates.
1450 Imager 0.51 - 23 Apr 2006
1453 - fix a validation bug when processing JPEG EXIF data that can cause
1455 http://rt.cpan.org/Public/Bug/Display.html?id=18496
1457 - fix mis-processing of the src_maxx and src_maxy parameters of the
1459 http://rt.cpan.org/Public/Bug/Display.html?id=18712
1461 - fix a problem in Imager's "smart" handling of the color parameter
1463 http://rt.cpan.org/Public/Bug/Display.html?id=18561
1466 Imager 0.50 - 29 Mar 2006
1469 - CRITICAL: fixes a segmentation fault from attempting to write a 2
1470 or 4 channel image to jpeg or a 2 channel image to tga where the
1471 output is an in-memeory buffer.
1472 http://rt.cpan.org/Public/Bug/Display.html?id=18397
1474 - fixes an incorrect pointer parameter in the PNG code
1475 http://rt.cpan.org/Public/Bug/Display.html?id=18051
1477 - skip Inline::C tests when building in a directory with spaces
1478 http://rt.cpan.org/Public/Bug/Display.html?id=18049