1 Imager release history. Older releases can be found in Changes.old
7 - improved thread safety
8 - the internal error stack and log file handle are now in a per-thread
10 - JPEG now captures IPTC information in a thread-safe way
11 - avoid globals where possible for warning capture in libtiff
14 Imager 0.92 - 14 Aug 2012
17 - giflib 4.2 eliminates the GIF_LIB_VERSION macro, handle that
18 correctly for both probing and runtime.
19 https://rt.cpan.org/Ticket/Display.html?id=77672
21 - allow building JPEG/imexif.c on C89 compilers.
23 - allow building GIF/imgif.c on C89 compilers.
25 Imager 0.91 - 4 Jun 2012
30 - The size of rotated images is no longer rounded up so aggressively.
31 Added rounding to the linear interpolation done for rotate() and
32 matrix_transform() for 1 and 3 channel 8-bit images.
33 Adjusted the two tranlate matrices used to build the final rotation
34 matrix to use the distance between the outlier pixels rather than
35 the pixel dimensions (ie. dimension-1).
36 With all of this the output of rotate(degrees => 270) on an 8-bit
37 image exactly matches the output of rotate(right => 270).
38 https://rt.cpan.org/Ticket/Display.html?id=77063
42 - eliminate the old IIM_new(), IIM_DESTROY() names from Imager's
43 internals, those names only matter for the XS interface.
45 - improve error reporting when PERL_INITIALIZE_IMAGER_CALLBACKS finds
46 the API level compiled into a loadable module such as
47 Imager::File::GIF doesn't match that of Imager. Previously it
48 could be difficult to determine exactly which module was failing to
50 https://rt.cpan.org/Ticket/Display.html?id=77173
52 - added Imager->check_file_limits() as an interface to the
53 i_int_check_image_file_limits() API.
55 - Imager->set_file_limits(reset => 1) now resets the limits to the
56 defaults rather than setting them all to unlimited.
58 - wrote a brief security note as Imager::Security
59 https://rt.cpan.org/Ticket/Display.html?id=68910
61 Imager 0.90 - 30 Apr 2012
66 - Imager::Test::is_imaged() attempted to process an "epsilon"
67 parameter but the prototype didn't allow for the extra parameter.
68 Corrected the prototype.
70 - when downconverting samples (eg. from floating point to 8 bit)
71 Imager now rounds the sample value rather than attempting to
72 allocate input values over output values equally. The old
73 behaviour had the probably surprising effect of converting a
74 floating point 2.1/255.0 into an 8-bit 3 rather than the expected
76 This may result in slightly different 8 or 16-bit output images.
78 - BI_BITFIELD BMP images were handled incorrectly, both in
79 incorrectly calculating the space required for the masks and in
80 processing the image data itself.
81 https://rt.cpan.org/Ticket/Display.html?id=76736
83 - some odd width BMP BI_RLE4 images use run lengths that run one off
84 the edge of the image. Imager now allows this, discarding the
87 - odd length RLE4 runs in BMP images were decoded incorrectly.
89 - pkg-config could sometimes return a library that was in a directory
90 EU::MM / $Config{libpth} doesn't know about, but the compiler did.
91 If no -L is included in the pkg-config library information check if
92 EU::MM can find the library, and if not, search our configured
93 directories and insert that into the library flags.
94 https://rt.cpan.org/Ticket/Display.html?id=75869
96 - Imager::Probe can now probe for libraries with dependent libraries,
97 common for static linking, eg. libpng requires libz.
98 https://rt.cpan.org/Ticket/Display.html?id=74043
100 - libpng 1.5 specific probes were looking for libpng 1.4 filenames.
102 - added alternative probe configurations that try to link libz, to
103 handle a statically linked libpng.
104 https://rt.cpan.org/Ticket/Display.html?id=74043
106 - if a probe includes testcode, Imager::Probe now checks that code as
107 part of the process of checking each configuration rather than as a
108 post test of the found configuration. This allows alternate
109 configurations to be checked if a matching but non-working
110 configuration is found.
111 https://rt.cpan.org/Ticket/Display.html?id=74043
115 - when reading or writing images via callbacks, the default callbacks
116 now push an error message indicating that a required callback was
117 called but not supplied.
118 https://rt.cpan.org/Ticket/Display.html?id=76782
120 - clarify which callbacks are required for reading and writing TIFF
123 - improve logging for creation of callback I/O layers.
125 - a little more documentation for Imager::Probe.
127 - the i_get_file_background() and i_get_file_backgroundf() APIs now
128 return int to indicate whether the i_background tag was found.
131 - improve error reporting
132 - add png_interlace, png_bits tags
133 - read paletted images as paletted images, including transparency
134 - read 1 bit greyscale images as a type suitable for other file
135 handlers to write as bilevel
136 - read 16 bit/sample PNG as 16-bit/sample Imager images
137 - write "bilevel" paletted images as 1 bit grayscale images
138 - write paletted images as paletted images
139 - write 16-bit (or higher)/sample images as 16-bit/sample PNG
141 - improved metadata support
142 https://rt.cpan.org/Ticket/Display.html?id=29268
144 Imager 0.89 - 18 Mar 2012
149 - getpixel(..., type => "float") and the API i_gpixf() have been
150 broken on paletted images since they were implemented.
151 https://rt.cpan.org/Ticket/Display.html?id=75258
155 - links in the METHOD INDEX now point at the method documentation
156 rather than the heading you can find them under.
157 https://rt.cpan.org/Ticket/Display.html?id=71495
159 - Imager (and the bundled dynamic modules) no longer fallback to
160 using DynaLoader if loading via XSLoader fails.
161 For the bundled modules this could hide useful error messages.
162 https://rt.cpan.org/Ticket/Display.html?id=75560
164 - IM_DEBUG_MALLOC mymalloc() no longer sn?printfs() a string to a
165 buffer in the array of allocations, but just stores the filename
166 pointer and line number.
167 https://rt.cpan.org/Ticket/Display.html?id=70388
169 Imager 0.88 - 22 Feb 2012
172 - describe how to build libgif etc on OS X in such a way as to be
173 compatible with a fat binary perl (such as the system perl), in
175 https://rt.cpan.org/Ticket/Display.html?id=73371
177 - update the change notes for 0.77_01 to indicate that libungif
180 - add some other imaging modules to SEE ALSO
181 https://rt.cpan.org/Ticket/Display.html?id=73906
183 - note that the generator of the apparently non-DFSG-free postscript
184 in MMOne.pfb is a Debian package.
186 - setsamples() is now a true complement to getsamples() - it can
187 write 8-bit or floating point samples from a scalar or array
188 reference. This adds i_psamp() and i_psampf() to the C level API.
190 - the XS interfaces to i_gsamp(), i_gsampf() and i_gsamp_bits() have
191 changed to make better use of the typemap, but these aren't part of
192 the perl level API anyway. There were no changes to the C level
193 interfaces to these functions.
195 - getpixel() and setpixel() now accept a mix of scalar and array
196 references for the x and y parameters, and unequal array lengths is
198 https://rt.cpan.org/Ticket/Display.html?id=73697
202 - correctly calculate the size of a rotated image
203 https://rt.cpan.org/Ticket/Display.html?id=69261
205 - fix incorrect rounding of color values for matrix_transform() and
207 https://rt.cpan.org/Ticket/Display.html?id=69261
209 - Win32 text output is now done in normal combine mode, the alpha
210 component of the color is now significant.
211 https://rt.cpan.org/Ticket/Display.html?id=70014
213 - remove long unused gif case from read()
214 https://rt.cpan.org/Ticket/Display.html?id=69244 (partial)
216 - the getsamples() target parameter was being treated as a hashref
217 when it's meant to be an array reference.
218 https://rt.cpan.org/Ticket/Display.html?id=74882
220 - getpixel() and setpixel() now returns an empty list when invalid
221 parameters are supplied.
222 Invalid values for type now result in an error for getpixel().
223 https://rt.cpan.org/Ticket/Display.html?id=73697
225 Imager 0.87 - 03 Jan 2012
228 - document the return value of the filter() method.
229 https://rt.cpan.org/Ticket/Display.html?id=72369
231 - document i_gsamp_bits() and i_psamp_bits().
232 https://rt.cpan.org/Ticket/Display.html?id=68815
234 - properly increment the Imager::Matrix2d $VERSION.
236 - actually include the Imager::Test tests in the dist
238 - correctly read and write 256x256 pixel ICO files
239 https://rt.cpan.org/Ticket/Display.html?id=69599
241 - make the error message from read() or read_multi() when they can't
242 identify the file type match reality.
243 https://rt.cpan.org/Ticket/Display.html?id=72475
245 - read() now uses $FORMATGUESS if it can't determine the file type
246 based on the file header, to match read_multi().
248 - re-work and add tests for def_guess_type(). def_guess_type() no
249 longer returns any random file extension as the file type.
251 - add gray4, gray16 and gray as presets for make_colors.
252 https://rt.cpan.org/Ticket/Display.html?id=67911
254 - add make_palette() method that produces a palette from one or more
257 - fix the Imager dependency for the separately distributed font
259 https://rt.cpan.org/Ticket/Display.html?id=72643
261 - fix i_render_color() to properly draw in "normal" mode - ie. when
262 writing to a 1 or 3 channel image the second or fourth channel of
263 the source color was being ignored, it is now significant.
264 https://rt.cpan.org/Ticket/Display.html?id=71564
266 Imager 0.86 - 31 Oct 2011
269 - improve error reporting for W32 tests
271 Imager 0.85_02 - 24 Oct 2011
276 - eliminate unused i_gif_opts type (clean-up)
277 https://rt.cpan.org/Ticket/Display.html?id=69245
279 - fix combine=0 fill color anti-aliasing on the double/sample path
280 https://rt.cpan.org/Ticket/Display.html?id=71309
282 - make default text color non-transparent
283 https://rt.cpan.org/Ticket/Display.html?id=71469
285 - apply the last of the Debian unforwarded spelling fixes
286 https://rt.cpan.org/Ticket/Display.html?id=70656
288 - the log() method used its message parameter as a C level format
290 https://rt.cpan.org/Ticket/Display.html?id=71653
292 - provide our own STRLEN typemap entry for older perls.
293 https://rt.cpan.org/Ticket/Display.html?id=71641
295 - add extra ppport.h configuration to support older perls.
297 - depend on Scalar::Util, since we use it and older perls don't have
300 - add overloaded eq to Imager::Matrix2d, since older perls don't seem
301 to synthesize it from overloaded "".
303 - use T1_StrError() for error messages on modern libt1
304 https://rt.cpan.org/Ticket/Display.html?id=69879
306 - actually load the font rather than just adding it to the catalog on
309 - Imager::Font->new now produces better error messages for the T1
312 - the font has_chars() method now returns perl's true and false
313 values in list context rather than integers, which should be more
315 https://rt.cpan.org/Ticket/Display.html?id=69158
317 - the btm data structure used by the flood_fill code is now
318 initialized more efficiently.
319 https://rt.cpan.org/Ticket/Display.html?id=68994
321 - updated the Thanks list in README
322 https://rt.cpan.org/Ticket/Display.html?id=71607
324 - check there's at least one coefficient for the convolution filter
325 https://rt.cpan.org/Ticket/Display.html?id=68993
327 - make the APIRef synopsis ordering consistent, older versions of
328 perl could order it differently.
329 https://rt.cpan.org/Ticket/Display.html?id=71675
331 - we rely on Config.pm's d_vsnprintf as to whether we use
332 vsnprintf/snprintf, which is defined in the Win32 Config.pm even
333 though it only has _ prefixed versions of these. Define our own
334 prefixed names on Win32.
335 https://rt.cpan.org/Ticket/Display.html?id=71642
337 - fix library detection with MSVC
339 - search a few more library directories, so EU::MM doesn't discard
340 them. Hopefully fixes:
341 https://rt.cpan.org/Ticket/Display.html?id=71643
343 Imager 0.85_01 - 10 Oct 2011
346 - add simple tests for the Imager::Test test_image generators
348 - io_glue I/O buffering re-work:
350 - reorganize io_glue to do it's own buffering by default
352 - the unbuffered functions are available as i_io_raw_read() (or
353 raw_read() from perl) etc but are not recommended for typical
356 - use the new i_io_peekn() when checking for file magic to avoid
357 seek, allowing Imager to detect the file type and read the file
358 from an unseekable stream (for formats that don't use random
361 - added several new I/O layer API functions.
363 - fix the TGA performance problem, most noticably on Win32
364 https://rt.cpan.org/Ticket/Display.html?id=70037
366 - TIFF now uses wrapper functions of the correct types to avoid casts
367 https://rt.cpan.org/Ticket/Display.html?id=69912
369 - the callback IO object did its own buffering, controlled by the
370 maxbuffer parameter supplied to the read() and write() methods.
371 This buffering has been removed, to avoid redundancy with the
372 common io_glue buffering. This also avoids a bug in that code
373 which could rarely pass a zero length to the read callback and
374 then panic about the result.
376 - the callback IO object now tests the result of calling the close
377 callback, which should return true for success.
379 - the PNM reader did its own buffering. This buffering has been
380 removed to avoid redundancy with the common io_glue buffering.
382 - previously the read handlers for fd and callback I/O layers would
383 call the underlying interface (POSIX read or your supplied callback)
384 until it filled the buffer. It now only makes one call.
386 - added public constructors for I/O layer objects (see Imager::IO)
388 - all core file handlers now use the i_io_foo() wrappers to gain
389 access to buffered I/O rather than calling the I/O layer
392 - all core file handlers now check for error on close.
394 - Backward compatibility: if you hava custom file handlers, you can
395 use i_io_write() etc since they're available as macros in older
398 - eliminate the final remnants of io_glue_commit_types().
400 - bump IMAGER_API_VERSION, since the above may break assumptions.
402 - removed the long unused i_gen_reader() and i_gen_writer() utility
405 Imager 0.85 - 29 Aug 2011
408 The main changes in the release versus 0.84 are:
410 - on 64-bit systems, 64-bit types are consistently used for image
411 dimensions and co-ordinated, and for memory block sizes.
413 - handle IFD loops in TIFF files correctly. Previously this would
414 lead to an infinite loop.
418 - fix the link in the getheight() entry in the method index
420 Imager 0.84_02 - 22 Aug 2011
423 Development release, this will become 0.85 if CPAN testers is
428 - the image file limits set by set_file_limits() weren't being
429 checked when reading TIFF files.
430 https://rt.cpan.org/Ticket/Display.html?id=69915
432 - Provide more information about file format module load errors on a
433 failed image file read() or write().
434 https://rt.cpan.org/Ticket/Display.html?id=69194
436 - use TIFFReadDirectory() instead of TIFFSetDirectory() to iterate
437 through TIFF images, since it checks for IFD loops.
438 https://rt.cpan.org/Ticket/Display.html?id=69914
440 - don't leak memory when out of range palette indexes are supplied to
442 https://rt.cpan.org/Ticket/Display.html?id=69242
444 - require a later version of CPAN::Meta to ensure JSON::PP and
445 CPAN::Meta::YAML are available.
446 https://rt.cpan.org/Ticket/Display.html?id=69008
448 - hoist the per-line calculations for the flines implementations, and
449 modernize the tests a bit.
450 https://rt.cpan.org/Ticket/Display.html?id=70126
452 - detect snprintf()/vsnprintf() (cheat by using Config.pm) and use
454 https://rt.cpan.org/Ticket/Display.html?id=69147
456 - if t1lib failed to reinitialize it would be left as marked
458 https://rt.cpan.org/Ticket/Display.html?id=69877
460 - update the bundled (and still modified) Devel::CheckLib
461 https://rt.cpan.org/Ticket/Display.html?id=69170
463 Imager 0.84_01 - 8 Aug 2011
466 Development release as a sanity check for the types re-work.
468 Massive types re-work:
470 - the type used internally for pixel co-ordinates and image sizes is
471 now 64-bit on 64-bit platforms (at least sane ones).
473 - size_t is now used consistently for memory block sizes.
475 - since this changes the binary interface, the Imager API version has
476 been incremented. Any module that uses the API will need to be
477 rebuilt. In most cases that will be enough, but calls to any APIs
478 that take a pointer to image sizes may need source changes.
480 - you should be able to create very large images on 64-bit systems,
481 if you have enough memory. Successfully created a 32768 x 49192 x
482 3 channel image, filled with a tiled image and scaled it. The
483 unscaled image was also successfully saved to a JPEG.
485 - check the image size before attempting to write BMP, GIF, JPEG,
486 PNG, SGI, TGA, TIFF images.
488 - correctly handle reading TGA images over 32767 pixels wide or tall.
492 - the gif_left and gif_top tags are now clamped to non-negative
493 values when writing a GIF image.
495 - removed dead callback read/write code
497 The default maximum memory size when reading files is now 1G.
499 Imager 0.84 - 20 Jun 2011
502 - Imager no longer inherits from Exporter (unless you're running an
505 - Imager can now write progressive JPEGs (it could always read them).
506 https://rt.cpan.org/Ticket/Display.html?id=68691
510 - re-work, document and test Imager's logging facility.
511 https://rt.cpan.org/Ticket/Display.html?id=65227
513 - fix META.yml testing and the generated META.yml
514 https://rt.cpan.org/Ticket/Display.html?id=65235
516 - test and add error reporting to to_*() family methods
518 - add to_rgb_double() method.
519 https://rt.cpan.org/Ticket/Display.html?id=65101
521 - Imager no longer exports anything by default
522 https://rt.cpan.org/Ticket/Display.html?id=65228
524 - convert colors to grayscale if the supplied (or generated) palette
525 contains only grays when performing error diffusion color
527 https://rt.cpan.org/Ticket/Display.html?id=68508
529 - writing a paletted image to GIF wouldn't always use the colors
530 supplied (or generated, eg. via make_colors => "mono"), which was
532 https://rt.cpan.org/Ticket/Display.html?id=67912
534 - replace (imager|tony)@imager.perl.org in the doc, since I don't
535 plan to continue receiving mail at that address.
536 https://rt.cpan.org/Ticket/Display.html?id=68591
538 Imager 0.83 - 21 May 2011
543 - diag() the error message on failure for some TIFF tests that are
544 failing on a Solaris smoker.
545 http://www.cpantesters.org/cpan/report/6396db1e-8090-11e0-9682-112b785ebe45
547 Imager 0.82_01 - 17 May 2011
550 Dev release, in case the compose tests are too sensitive.
554 - Imager::Font::T1 incorrectly checked for absolute filename under
555 Win32. Thanks to kmx for the report and fix.
556 https://rt.cpan.org/Ticket/Display.html?id=67963
558 - compose() with the target, source or mask position off the top or
559 left of the target image didn't clip the source image correctly.
560 https://rt.cpan.org/Ticket/Display.html?id=67220
562 - compose() now returns a useful error message on a non-positive
565 - compose.im now at 100% test coverage. (As opposed to, umm, much,
568 Imager 0.82 - 14 Mar 2011
573 - eliminate calls to i_has_format() from the test suite, since it's
574 no longer a useful way to check for file format support. Eliminate
575 i_has_format() from the functions exposed via XS.
576 https://rt.cpan.org/Ticket/Display.html?id=65863
578 - eliminate calls to note(), which isn't in the (very old) version of
579 Test::More we have as a pre-requisite. note() is modern enough
580 that I don't feel a need to require a Test::More upgrade for it.
581 https://rt.cpan.org/Ticket/Display.html?id=65864
583 - skip the threads tests on Test::More 2.00_*
584 https://rt.cpan.org/Ticket/Display.html?id=65812
586 - add an (unshipped) test to check Imager's internal POD links
587 https://rt.cpan.org/Ticket/Display.html?id=65749
589 - improve the library detection summary
590 https://rt.cpan.org/Ticket/Display.html?id=9675
592 - increase the version of Imager::Font::Type1 so that upgrades don't
593 downgrade the version in this file.
594 https://rt.cpan.org/Ticket/Display.html?id=66250
596 - if we see an -rpath (or -R) option in $Config{lddlflags} supply
597 that option for the directories that would normally go in
598 LD_RUN_PATH. Typically an explicit -rpath overrides LD_RUN_PATH.
599 https://rt.cpan.org/Ticket/Display.html?id=65955
601 Imager 0.81 - 14 Feb 2011
604 - added coverage tests for masked images (maskimg.c @100% test coverage)
606 - add hsv() method to Imager::Color
607 Thanks to Leolo (Philip Gwyn)
608 https://rt.cpan.org/Ticket/Display.html?id=65385
610 - split libt1 Type 1 font support into a sub-module
611 https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
613 - add a preload() class method for use in forking servers, and to
614 work around limitations in PAR.
615 https://rt.cpan.org/Ticket/Display.html?id=65665
619 - paletted writes to a masked image are now masked correctly.
620 Revealed by new coverage tests.
622 - update the filter plugin documentation.
623 https://rt.cpan.org/Ticket/Display.html?id=56513
625 - add the matrix() method to Imager::Matrix2d to allow creation of a
626 matrix with specified co-efficients. You can now multiple an
627 Imager::Matrix2d object by a 9 element array ref or a number.
628 https://rt.cpan.org/Ticket/Display.html?id=29938
630 - really fix loading TTF fonts with FT2 when FT1 isn't available.
631 Thanks to Leolo (Philip Gwyn)
632 https://rt.cpan.org/Ticket/Display.html?id=65386
633 https://rt.cpan.org/Ticket/Display.html?id=62855
635 - make sure each test script that needs testout/ creates it.
636 https://rt.cpan.org/Ticket/Display.html?id=65088
638 - handle a slightly different warning from libtiff 4.x
639 https://rt.cpan.org/Ticket/Display.html?id=65268
641 - the sat transform2() op returned an incorrect saturation.
642 https://rt.cpan.org/Ticket/Display.html?id=65391
644 Imager 0.80 - 17 Jan 2011
647 - added coverage tests for Imager::Fountain and Imager::Color::Float
649 - Imager is now maintained in git
650 http://git.imager.perl.org/imager.git
651 git://git.imager.perl.org/imager.git
655 - images with an translucent alpha channel were not scaled correctly
656 by the default (qtype=normal) scaling method.
657 https://rt.cpan.org/Public/Bug/Display.html?id=63922
659 - Imager::Color::Float now translates "#FFFFFF" to white instead of
660 just a little darker.
662 - make the default color map build algorithm "mediancut". This
663 changes the default color map builder for writing GIFs back to what
664 it was in 0.77, reverting a performance regression.
665 https://rt.cpan.org/Ticket/Display.html?id=64785
667 - handle failure to create a masked image correctly
669 Imager 0.79 - 10 Dec 2010
672 - add Imager::Test to the POD coverage tests and document the missing
675 - the convert() method now optimizes the case where all output
676 channels are either 0, sourced from a single input channel or 1.
677 This significantly speeds up presets like "addalpha", "green".
678 https://rt.cpan.org/Ticket/Display.html?id=51254
680 - add wiggle.pl sample, as suggested by Dan Oppenheim.
682 - add the combine() method to combine channels from multiple source
683 images into a new image
684 https://rt.cpan.org/Ticket/Display.html?id=11872
688 - treat the co-efficients for convert() as doubles instead of floats.
690 - If a higher (earlier) priority font handler failed to load, that
691 would crash preventing loading of later font handlers.
692 https://rt.cpan.org/Ticket/Display.html?id=62855
694 - parse defines from the options returned by pkg-config --cflags
695 https://rt.cpan.org/Ticket/Display.html?id=63223
697 - a regen of the MANIFEST revealed that GIF and FT2 tests weren't
698 included in the tarball. They are now included.
700 Imager 0.78 - 4 Oct 2010
705 - don't access deprecated members of the png_structp.
706 https://rt.cpan.org/Ticket/Display.html?id=60242
708 - document that using color objects is faster than supplying colors
710 https://rt.cpan.org/Ticket/Display.html?id=61047
712 - Imager::Probe now accepts array references for incpath and libpath.
713 https://rt.cpan.org/Ticket/Display.html?id=60244
715 Imager 0.77_02 - 27 Sep 2010
718 - moved Win32, FreeType 2 font support into sub-modules.
719 https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
720 Uses Imager::Probe now.
721 https://rt.cpan.org/Public/Bug/Display.html?id=61328
723 - tested successfully with jpeg-8b
724 https://rt.cpan.org/Ticket/Display.html?id=60221
728 - from _01: look for missing file support test files in the right
731 - flood_fill() wouldn't fill the right side of a single scan-line
733 Thanks to Nicolas Roggli for reporting this.
735 - flood_fill wouldn't fill to the left edge of the image if the
736 starting line didn't reach the left edge.
737 Thanks to Nicolas Roggli for reporting this.
739 Imager 0.77_01 - 13 Sep 2010
742 - add each library-directory/pkgconfig/ to the pkg-config search path
744 Thanks to Justin Davis.
745 https://rt.cpan.org/Ticket/Display.html?id=60491
747 - moved GIF, TIFF, JPEG file handling code into sub-modules in
748 preparation for separate distribution.
749 https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
751 Note: this removed support for libungif from Imager.
753 - optimize filled box drawing (color, not fill)
757 - Imager::Probe was calling ExtUtils::Liblist to initialize
758 LD_RUN_PATH supplying an undefined value rather than the found
759 directory. Thanks to Justin Davis.
760 https://rt.cpan.org/Ticket/Display.html?id=60491
762 - only prepend ./ to font filenames when passing them to T1Lib and
763 then only when it would use its search mechanisms.
764 https://rt.cpan.org/Ticket/Display.html?id=60509
766 - fix the cache check for the X rgb.txt loader. This is typically
767 used for color translation on Unix-like systems, and the fix
768 improves performance of supplying colors by name by about 80 times.
769 Test code that managed 3400 10x10 pixel boxes/second sped up to
772 - clarify that Imager doesn't write EXIF metadata to images.
773 https://rt.cpan.org/Ticket/Display.html?id=60637
775 - Imager::Probe can now search subdirectories under its include path.
776 Used by the PNG Makefile.PL to find headers and libraries when they
777 aren't in the base directory, as in cygwin.
778 https://rt.cpan.org/Ticket/Display.html?id=60635
780 Imager 0.77 - 11 Aug 2010
783 I don't want Imager::File::PNG indexed as part of Imager, but forgot
784 to update the META.yml before updating the version.
786 - don't index Imager::File::PNG as part of Imager
788 - add resources to META.yml
790 Imager 0.76 - not released
795 - the align_string() method would ignore a string of "0" due to a
797 Thanks to Maurice Height for reporting this.
798 https://rt.cpan.org/Ticket/Display.html?id=60199
800 Imager 0.75_03 - 09 Aug 2010
805 - read_types() and write_types() would include png when it wasn't
806 available due to a problem with the %formats tie
808 - handle dependent libraries correctly (eg -lpng requiring -lz) in
809 the code run phase of library probing.
811 Imager 0.75_02 - 07 Aug 2010
816 - add file missing from MANIFEST, which was causing TIFF failures.
818 Imager 0.75_01 - 06 Aug 2010
821 Test release for the new PNG probe.
823 - added the ability to read multiple-image PNM files.
824 Note that unlike the pbm/pgm/ppm specification this accepts mixed
825 format files and allows white space padding between files.
826 Thanks to Philip Gwyn (Leolo) for this patch.
828 - moved the PNG file handling code into a sub-module in preparation
829 for separate distribution.
830 https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
831 Also helps avoid complications from -I/-L compile/link options from
836 - Imager->new(data => $data) didn't try to process image file data in
838 https://rt.cpan.org/Ticket/Display.html?id=58761
840 - t/t50basicoo.t no longer depends on the other tests to generate its
842 https://rt.cpan.org/Ticket/Display.html?id=9798
843 Also, it wasn't testing pnm (pnm vs ppm mix-up)
845 - update the documentation of hardinvert to match the change in 0.62.
846 https://rt.cpan.org/Ticket/Display.html?id=59785
848 - added hardinvertall filter which also inverts the alpha channel
851 - when probing for TIFF, set LD_RUN_PATH just as the Makefile does so
852 the probe can find the library for the test run.
853 https://rt.cpan.org/Ticket/Display.html?id=57518
855 Imager 0.75 - 20 Jun 2010
858 - use PERL_NO_GET_CONTEXT to slightly improve performance on threaded
863 - an opacity fill based on a fountain fill would segfault when
864 filling an 8-bit/sample image.
866 - merge thickline branch polygon fix
867 https://rt.cpan.org/Ticket/Display.html?id=43518
869 Imager 0.74 - 7 May 2010
874 - read_multi() didn't handle a missing file format library correctly,
875 aborting on failing to call i_readgif_multi_wiol() or
876 i_readtiff_multi_wiol().
878 - fix spelling errors patched by Debian
879 http://svn.debian.org/viewsvn/pkg-perl/trunk/libimager-perl/debian/patches/spelling.patch?revision=54839&view=markup
881 - add an (unshipped) author test to spellcheck Imager's POD.
883 - update the TIFF file format documentation
884 https://rt.cpan.org/Ticket/Display.html?id=56510
886 - lib/Imager/IO.pod was written almost 4 years ago but never shipped.
888 Imager 0.73 - 15 Mar 2010
891 - implement outline circles, both anti-aliased and not
892 https://rt.cpan.org/Ticket/Display.html?id=19755
894 - a combine => "none" fill to a 1 or 3 channel image would produce
895 the incorrect colour.
897 Imager 0.72 - 09 Dec 2009
900 Bump version for release, since 0.71_03 is stable with CPAN testers.
902 Imager 0.71_03 - 5 Dec 2009
905 - further adjust the threads test so it only performs the tests on
906 perls where it's expected to work, and only if the threads module
909 Imager 0.71_02 - 1 Dec 2009
912 - adjust the way we load the threads module for the threads test so
913 it works with non-threaded perls
915 Imager 0.71_01 - 30 Nov 2009
920 - use scanline oriented operations to flip images instead of pixel
922 https://rt.cpan.org/Ticket/Display.html?id=39278
924 - use double/sample operations to flip large sample images instead of
925 8-bit sample operations.
926 https://rt.cpan.org/Ticket/Display.html?id=39280
929 https://rt.cpan.org/Ticket/Display.html?id=51874
931 - prevent double-frees when someone creates Imager objects and then
932 creates a thread. Note: this just handles some simple cases,
933 Imager doesn't support perl threads, and isn't likely to.
934 https://rt.cpan.org/Ticket/Display.html?id=52268
936 Imager 0.71 - 16 Nov 2009
939 - add the opacity fill type - an adaptor that modifies the opacity of
944 - the conv filter now enforces that the sum of the coefficients is
945 non-zero. Also, rather than skipping pixels off the edge off the
946 edge of the image, the closest edge pixel is used. Previously
947 dividing by the zero sum of coefficients could cause invalid
948 results or runtime exceptions.
949 Thanks to David Cantrell's Alpha-NetBSD CPAN test box for revealing
952 Imager 0.70 - 21 Sep 2009
957 - release image row and comments memory on all error returns in gif
960 - handle zero length extensions, previously this would cause a null
962 Thanks to Krzysztof Wojtaś for the test data and fix for this.
964 - an integer division meant that preview scaling to below 1 pixel
965 wide or high (which isn't too useful anyway) was calculating using
966 NaNs on most platforms, and causing an exception on others.
967 Thanks to David Cantrell for producing a backtrace of the crash on
968 his Alpha-NetBSD CPAN test box which made it possible to track this
971 Imager 0.69 - 08 Sep 2009
976 - broken test fix - was attempting to call a function skip_all, when
977 that should be a parameter to plan().
979 - briefly document apidocs.perl, the tool used to build
980 Imager::APIRef and make some minor enhancements
982 - various minor documentation enhancements and fixes.
984 Imager 0.68 - 07 Sep 2009
987 - Imager->new(file => $filename) and other similar incantations will
989 https://rt.cpan.org/Ticket/Display.html?id=48261
993 - avoid using CHECK as a label in Imager::Test
994 http://nntp.x.perl.org/group/perl.cpan.testers/5220921
996 - re-work most image file test files that require a library into
997 separate library present/not present files to remove stupidly long
1000 - don't treat rubthrough() outside the bounds of the target image as
1002 http://nntp.x.perl.org/group/perl.cpan.testers/5185716
1004 Imager 0.67_01 - 02 Sep 2009
1009 - correct documentation of default of raw image interleave read
1011 https://rt.cpan.org/Ticket/Display.html?id=42074
1013 - add raw_ prefix to raw read parameters, though the original names
1016 - fail the read if an invalid raw_interleave parameter is supplied
1018 - warn if no interleave or raw_interleave parameter is supplied,
1019 since the documented default was wrong, and incompatible with the
1022 - for reading raw images, if raw_storechannels > raw_datachannels,
1023 set the extra channels in the image to 0
1025 - when probing for executables like freetype-config, search for .bat
1026 and .cmd on MSWin32, as well as .exe.
1027 https://rt.cpan.org/Ticket/Display.html?id=49275
1029 - re-work the external libraries section of README:
1030 - list Debian and Redhat package names for each library
1034 - use the new EU::MM META_MERGE facility instead of generating
1035 META.yml from scratch
1036 https://rt.cpan.org/Ticket/Display.html?id=47888
1038 - use Devel::CheckLib (bundled, modified) to check which release of
1039 libtiff is installed and reject 3.9.0
1040 http://bugzilla.maptools.org/show_bug.cgi?id=2088
1041 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=543079
1043 Imager 0.67 - 12 Dec 2008
1048 - fix a packaging error
1050 Imager 0.66 - 12 Dec 2008
1053 - 24-bit color .ICO/.CUR files can now be read.
1057 - an optimization skipping 0 src alpha values could cause the
1058 rubthrough() to read past the end of a buffer.
1059 http://www.nntp.perl.org/group/perl.cpan.testers/2008/05/msg1509184.html
1061 - corrected a reference leak where writing GIFs would leak memory.
1062 This could also happen calling to_paletted().
1063 Also documented the underlying long existing feature where the
1064 colors parameter is filled with the generated color table and added
1066 http://rt.cpan.org/Ticket/Display.html?id=41028
1068 - write out the image size in bytes field of a BMP correctly.
1069 http://rt.cpan.org/Ticket/Display.html?id=41406
1071 - add limited tests for Imager::ExtUtils
1073 - make Imager::ExtUtils->includes use an absolute path, since
1074 a relative path could cause failures using Inline::C.
1075 http://rt.cpan.org/Ticket/Display.html?id=37353
1077 - re-arrange the POD for Imager::Font::BBox:
1078 - mark total_width(), pos_width(), end_offset() obsolete, since
1079 they're mostly for backwards compatibility
1080 - group width methods and height methods
1081 https://rt.cpan.org/Ticket/Display.html?id=39999
1083 Imager 0.65 - 20 May 2008
1088 - In some cases when an error occurs reading those parts of a JPEG
1089 file after the image the scan-line buffer could be freed a second
1090 time. In cases where the the error occured while reading the image
1091 data it's possible that the buffer could have leaked.
1092 Thanks to Gabriel Vasseur for reporting this and help in tracking
1095 - the gif_screen_height tag was overriding the screen width and being
1096 ignored for the screen height when present.
1097 https://rt.cpan.org/Public/Bug/Display.html?id=35568
1099 Imager 0.64 - 23 April 2008
1102 This is a bug fix release. This includes a fix for a possible
1107 - Possible security issue: The floating point sample path for image
1108 based fills had a buffer overflow. This would overwrite the end of
1109 a malloc()ed buffer with double precision floats.
1110 http://rt.cpan.org/Ticket/Display.html?id=35324
1113 - check that the result of fileno($fh) is defined rather than simply
1114 true when read() or write() is supplied with an fh parameter.
1115 http://rt.cpan.org/Ticket/Display.html?id=35139
1117 - i_scale_axis() wasn't checking the result of i_img_new_ch()
1118 resulting in a SIGSEGV when attempting to scale an image to a size
1119 too large to fit in memory. This is a NULL pointer access issue,
1120 not a buffer overflow.
1121 Added a check for the failure.
1122 scale_calculate() (and hence scale()) will now fail if any of the
1123 scale size parameters are a reference.
1124 http://rt.cpan.org/Ticket/Display.html?id=35172
1126 - Regression: filling a greyscale image with a hatch used the wrong
1127 color channels from the supplied fg/bg colors.
1128 https://rt.cpan.org/Ticket/Display.html?id=35278
1130 - fixed a related problem for image fills.
1132 Imager 0.63 - 7 April 2008
1135 This release primarily contains changes to improve ease of use -
1136 rather than you having to convert images to the appropriate number of
1137 channels, Imager handles it internally. How to handle drawing colors
1138 and the default combine mode is a thornier problem left for some other
1141 - the font libraries are now only initialized when needed.
1142 http://rt.cpan.org/Ticket/Display.html?id=28825
1144 - moved the imtoc.perl code into Imager::Preprocess
1146 - paste() and rubthrough() now adapt the source image data to the
1147 destination, so you can now safely paste/rubthrough from greyscale
1148 images to color images or back, or from alpha channel images to
1149 noalpha channels or back.
1150 https://rt.cpan.org/Ticket/Display.html?id=30908
1152 - rubthrough() now falls back to pasting when the source doesn't have
1153 an alpha channel. This effectively treats the source as having a
1154 max alpha channel, the right thing to do.
1155 http://rt.cpan.org/Ticket/Display.html?id=29944
1157 - re-worked most of the area filling code to use a common set of
1158 functions when filling.
1159 Corrected normal combine mode.
1160 Rewrote most of the combine modes to match the way the SVG draft
1161 defines them with respect to a translucent source and destination.
1162 Added tests for translucent source and destination.
1163 Added tests to check 8-bit/sample and double/sample combines work
1165 https://rt.cpan.org/Ticket/Display.html?id=29879
1167 - writing a 2 or 4 channel image to a JPEG file will now write that
1168 image as if composited against a background, black by default,
1169 overridable with the i_background tag/parameter.
1170 https://rt.cpan.org/Ticket/Display.html?id=29876
1172 - writing a 2 or 4 channel image to a PGM/PPM file will now write
1173 that image as if composited against a background, black by default,
1174 overridable with the i_background tag/parameter.
1175 http://rt.cpan.org/Ticket/Display.html?id=30074
1177 - writing a 2 or 4 channel image to a BMP file will now write that
1178 image as if composited against a background, black by default,
1179 overridable with the i_background tag/parameter.
1180 http://rt.cpan.org/Ticket/Display.html?id=30075
1184 - Imager::Matrix2d->translate() now only requires one of the x or y
1186 http://rt.cpan.org/Ticket/Display.html?id=29937
1188 - mixing qtype scaling now sets all channels of a pixel to zero if
1189 the pixel has zero coverage (zero alpha). This should produce more
1190 compressible output files.
1191 http://rt.cpan.org/Ticket/Display.html?id=32324
1193 - removed the pointless #! line from lib/Imager/Font/Wrap.pm
1195 https://bugzilla.redhat.com/show_bug.cgi?id=166254
1196 I'm not changing the #! lines of the sample code, since it's sample
1197 code, not intended for installation.
1198 http://rt.cpan.org/Ticket/Display.html?id=33408
1200 - some TGA images weren't being detected correctly as TGA images
1201 https://rt.cpan.org/Ticket/Display.html?id=32925
1203 - handling of the left-over bit for 16-bit/pixel TGA images has been
1204 changed to match the behaviour of the GIMP. Previously the bit
1205 being set was treated as an opaque pixel, but one user reported a
1206 problem with loading such an image. I haven't been able to find any
1207 tools beyond the GIMP that handle alpha-channel 16-bit TGAs, so
1208 I'll match it's behaviour. See issue 114913 in the GIMP's
1210 http://rt.cpan.org/Ticket/Display.html?id=32926
1212 Imager 0.62 - 10 December 2007
1215 - Makefile.PL now expands ~/path supplied to --incpath or --libpath
1216 to /path under your home directory.
1217 http://rt.cpan.org/Ticket/Display.html?id=29484
1219 - the old dynaload code used Mach API functions to load dynamic
1220 libraries on Mac OS X. These APIs have been deprecated in OS X
1221 10.5 and were causing some build problems.
1222 So henceforth Imager uses the dlopen() family of functions, and you
1223 will need version 10.3 or later of OS X.
1225 - added the det() function to the transform2() engine.
1226 added the sample quad_to_square.pl
1227 Courtesy Richard Fairhurst.
1228 http://rt.cpan.org/Ticket/Display.html?id=31244
1232 - samples/gifscale.pl sourced the base value for gif_top from
1234 Thanks to Eleneldil G. Arilou for pointing this out.
1236 - t/t82inline.t no longer loads B at runtime, to work around a bug
1237 in some 5.005_0[45] installations.
1238 http://rt.cpan.org/Ticket/Display.html?id=30508
1240 - work around Module::Depends::Intrusive bug #21229
1241 http://rt.cpan.org/Ticket/Display.html?id=30520
1243 - the hardinvert filter no-longer inverts the alpha channel.
1244 http://rt.cpan.org/Ticket/Display.html?id=30002
1246 - the hardinvert filter now supports large samples
1248 Imager 0.61_02 - 28 November 2007
1251 - major TIFF support re-work
1252 http://rt.cpan.org/Ticket/Display.html?id=20329
1254 - added a C level image interface for accessing samples from 1-32
1255 bits, exposed this at the perl level in getsamples()
1257 - the conv filter now works at floating point precision for high bit
1260 - added is_bilevel method to test whether an image should be written as
1261 a bilevel image if the image format supports it.
1263 - added -log-stderr as an Imager import list option
1265 - added some important types to Imager::APIRef
1267 - added test_image_double() to Imager::Test
1271 - Imager::Fountain couldn't read GIMP gradient files with 10 or more
1274 - the scale() method with qtype mixing now handles images with an
1275 alpha channel correctly.
1277 - fixed a broken link from the "animated GIF" entry in the concept index.
1278 Thanks to Slaven Rezic.
1279 http://rt.cpan.org/Ticket/Display.html?id=30889
1281 - on some perl's the infix expression parser test would fail due to
1282 actions in the grammar returning false. Made sure all actions return
1284 Thanks to Richard Fairhurst for spending a lot of time in tracking
1286 http://rt.cpan.org/Public/Bug/Display.html?id=29562
1288 Imager 0.61 - 5 November 2007
1291 - added samples/gifscale.pl, which adjusts the screen size/position tags
1292 when scaling an animated gif
1293 http://rt.cpan.org/Ticket/Display.html?id=27591
1297 - correct handling of sz in matrix_transform() - this should allow
1298 perspective type transformations to work now.
1299 http://rt.cpan.org/Ticket/Display.html?id=29936
1301 - prevent a cast to integer warning on x64 builds in datatypes.c
1302 also fixed some other type warnings
1303 https://rt.cpan.org/Ticket/Display.html?id=30204
1305 - some sub-directory tests depended on files produced by the parent
1307 http://rt.cpan.org/Ticket/Display.html?id=30203
1309 - Imager::Font::Wrap doesn't correctly set savepos
1310 thanks to Nikita Dedik and Eleneldil G. Arilou for reporting this.
1311 http://rt.cpan.org/Ticket/Display.html?id=29771
1313 - test 171 in t/t01introvert.t was failing on perls configured to
1315 http://rt.cpan.org/Ticket/Display.html?id=29413
1317 - the code for the transform2() uminus operator was missing a break.
1318 Added tests for better code coverage of the ops.
1319 http://rt.cpan.org/Ticket/Display.html?id=29296
1321 - the SGI RLE compression code could overflow its compression buffer
1322 http://rt.cpan.org/Ticket/Display.html?id=30334
1324 - the 32-bit output function used by the SGI code only handled values
1325 under 0x10000. This was most noticable when writing large RLE images.
1326 http://rt.cpan.org/Ticket/Display.html?id=30335
1328 - validate chan_count for chans == NULL for each of the i_gsamp()
1330 http://rt.cpan.org/Ticket/Display.html?id=28985
1332 - attempt to work around the test failure at
1333 http://www.nntp.perl.org/group/perl.cpan.testers/2007/09/msg650810.html
1334 http://rt.cpan.org/Ticket/Display.html?id=29562
1336 - improve the error messages produced when attempting to read or write
1337 an unknown image file format.
1338 http://rt.cpan.org/Ticket/Display.html?id=30103
1340 - improve the transform2() documentation
1341 http://rt.cpan.org/Ticket/Display.html?id=29267
1343 - correctly generate the author key in META.yml
1344 http://rt.cpan.org/Ticket/Display.html?id=30377
1346 - correctly blend a rotated (or matrix_transformed()) image when
1347 performing interpolation in the presence of an alpha channel.
1348 Also corrected the centring of the rotated image on the output
1351 Imager 0.60 - 30 August 2007
1354 - Finished/rewrote Arnar's old SGI RGB file format support, so Imager
1355 now has full SGI RGB image format, including RLE and 16-bit/sample
1357 https://rt.cpan.org/Ticket/Display.html?id=8666
1359 - logging functions are now available in the API
1361 - applied Gabriel Vasseur's patch
1362 added documentation, further tests, and support for greyscale images
1363 Obviously problems are my fault :)
1364 https://rt.cpan.org/Ticket/Display.html?id=28142
1366 - the mask for ICO/CUR images is now applied as an alpha channel to
1367 the returned image. For the old behaviour, supply ico_masked => 0
1368 to read() or read_multi(). This should be less confusing when
1369 using Imager as a general image processor.
1370 https://rt.cpan.org/Ticket/Display.html?id=29001
1374 - in some cases it's possible for giflib/libungif to return color
1375 indexes outside the range of colors defined by the image's palette.
1376 We now expand the palette to match the indexes used.
1377 Thanks to Gabriel Vasseur for reporting this.
1379 - fixed various memory leaks that could occur when failing to read png,
1380 jpeg, bmp or tga files.
1382 - to avoid confusion, channels not present in the image are returned as
1383 zero by getscanline(). This has no effect on the C level i_glin()
1384 and i_glinf() API functions which continue to not set the unused
1387 - the convert() method now returns an image of the same sample size as
1389 https://rt.cpan.org/Ticket/Display.html?id=28492
1391 - remove repeated text in Imager::Files
1392 http://rt.cpan.org/Ticket/Display.html?id=27589
1394 - be even more explicit that scale() and friends don't modify the source
1395 image, but return a new image.
1396 http://rt.cpan.org/Ticket/Display.html?id=28570
1398 - improve the error message from errstr() when you try to load a font
1399 for which the driver hasn't been built in Imager.
1400 http://rt.cpan.org/Ticket/Display.html?id=27571
1402 - transparency is now enabled by default when writing GIF images
1403 http://rt.cpan.org/Ticket/Display.html?id=27615
1405 - Imager would not load on Windows 98
1406 http://rt.cpan.org/Ticket/Display.html?id=27653
1408 Imager 0.59 - 14 June 2007
1413 - fixes a regression introduced by the fixes for RT 11972
1414 http://rt.cpan.org/Ticket/Display.html?id=27546
1416 - cropping outside the image would return an Imager object with
1417 no low-level image object, instead of returning false.
1418 Fixed by: Philip Gwyn (Leolo)
1419 http://rt.cpan.org/Ticket/Display.html?id=27509
1421 Imager 0.58 - 16 May 2007
1424 No significant changes from 0.57_01.
1426 Imager 0.57_01 - 11 May 2007
1429 - added to_rgb16 to produce a 16-bit/sample version of an image
1431 - improve freetype 1.x text output efficiency
1435 - search another place for rgb.txt, and check all the places
1436 Imager::Color checks when deciding whether to skip testing it
1437 http://rt.cpan.org/Ticket/Display.html?id=26064
1439 - use a convolution kernel size based on the stddev rather than a
1440 fixed size when performing a gaussian blur
1441 http://rt.cpan.org/Ticket/Display.html?id=25645
1443 - document the difference() method's mindist parameter, and debug it.
1445 - put the Imager release number in the Inline::C generated code to
1446 regenerate Inline code when a new release of Imager is installed.
1447 http://rt.cpan.org/Ticket/Display.html?id=26278
1449 - fix rendering on alpha channel images for the FreeType 1.x driver.
1450 http://rt.cpan.org/Ticket/Display.html?id=11972
1452 - fix rendering on alpha channel images for the T1lib driver.
1453 http://rt.cpan.org/Ticket/Display.html?id=11972
1455 - reworked library probing, we can now set more than one probe
1456 function for a library. Disabled the default (non-freetype-config)
1457 library probe and added an extra probe function that searches for
1458 both ft2build.h and whatever it includes, and adds -I as needed.
1459 Hopefully this will fix build problems like
1460 http://www.nntp.perl.org/group/perl.cpan.testers/2007/05/msg472281.html
1461 http://rt.cpan.org/Ticket/Display.html?id=26086
1463 Imager 0.57 - 30 Apr 2007
1466 This is a maintenence release fixing a security issue in Imager.
1468 - CRITICAL: a specially crafted compressed BMP file can cause a buffer
1469 overflow in malloced memory. There will be further discussion of
1470 this issue in the ticket below.
1471 http://rt.cpan.org/Ticket/Display.html?id=26811
1472 CVE-2007-2459 CVE-2007-2413
1473 The descriptions at cve.mitre.org varied in quality, please see the
1474 ticket at rt.cpan.org for a more accurate description of the issue.
1476 Imager 0.56 - 1 Apr 2007
1479 - added support for reading 16-bit/sample PGM/PPM images
1481 - added support for writing 16-bit/sample PGM/PPM images
1483 - improved performance of reading PBM/PGM/PPM images
1485 - added support for writing PBM images if the image is paletted and
1486 contains only black and white
1488 - added a new make_colors value - "mono"
1490 - switched from the svn log Changes to a manual Changes to reduce
1493 - new sample code - samples/flasher.pl
1497 - CRITICAL: the "Imager" typemap entry (not used by Imager itself)
1498 was returning an image object with an extra reference, this
1499 resulted in a memory leak.
1500 http://rt.cpan.org/Ticket/Display.html?id=24992
1502 - fix rendering on alpha channel images for the FreeType 2.x driver
1503 http://rt.cpan.org/Ticket/Display.html?id=11972
1505 - reading bmp files now consitently handles short reads. You can now
1506 supply a parameter to treat a short read as successful and set
1508 http://rt.cpan.org/Ticket/Display.html?id=8426
1510 - previously, reading ASCII PBM files required spaces between samples,
1511 even though the format doesn't require that
1513 - improved documentation of the unsharpmask filter (I hope)
1514 http://rt.cpan.org/Ticket/Display.html?id=25531
1516 - force flushing of the output from i_tt_dump_names() and test output
1517 in t/t35ttfont.t to prevent output from being mixed up.
1518 https://rt.cpan.org/Ticket/Display.html?id=24859
1520 - rewrite a conditional expression as an if() to hopefully work around
1521 a bug in the pre-4.0 GCC Apple shipped with OS X 10.4.
1522 https://rt.cpan.org/Ticket/Display.html?id=25561
1524 - avoid Data::Dumper in regops.perl to support older releases of perl
1525 https://rt.cpan.org/Ticket/Display.html?id=24391
1527 Imager 0.55 - 16 Dec 2006
1530 This is primarily a bug fix release.
1532 Note: Test::More is now a pre-requisite for Imager and is no longer bundled.
1534 There is one new feature:
1536 - the Win32 font driver now supports UTF8 (RT 22166)
1537 http://www.cpanforum.com/threads/3276
1538 http://rt.cpan.org/Ticket/Display.html?id=22166
1540 Several bugs were fixed:
1542 - the string() method would not output the string "0"
1543 http://rt.cpan.org/Public/Bug/Display.html?id=21770
1545 - fills.c was failing to compile on Solaris 10 (compiler unknown)
1546 http://rt.cpan.org/Public/Bug/Display.html?id=21944
1548 - the gif_disposal and gif_user_input tags weren't being read from
1550 http://rt.cpan.org/Public/Bug/Display.html?id=22192
1552 - gif.c was failing to build under MSVC
1553 http://rt.cpan.org/Ticket/Display.html?id=23922
1555 - in some cases strings passed to the string() method were treated as
1556 terminated by NUL (chr 0)
1557 http://rt.cpan.org/Public/Bug/Display.html?id=21770
1559 - on "MSWin32" perl builds we now link to -lzlib instead of -lz since
1560 that's the default build name for zlib on Win32.
1561 http://rt.cpan.org/Ticket/Display.html?id=23064
1563 - search $Config{incpath} for headers too, which we should have been
1566 Win32 font driver fixes:
1568 - the global descent value from bounding box was the wrong sign
1569 http://www.cpanforum.com/threads/3276
1571 - if the first or last glyph overflowed the left or right side of the
1572 advance width they would be clipped
1575 Imager 0.54 - 14 Sep 2006
1578 This is primarily a feature release:
1580 - a new qtype value 'mixing' has been added to the scale()
1581 method. This is faster than 'normal', slower than 'preview'. This
1582 is based on the method used by pnmscale, and seems to produce less
1583 blurry results than normal.
1584 http://rt.cpan.org/Public/Bug/Display.html?id=20677
1586 - the rubthrough() method can now render onto images with an alpha
1588 http://rt.cpan.org/Ticket/Display.html?id=20678
1590 - the read_multi() method now falls back to calling doing a single
1591 image read via the read() method and write_multi() will now fall
1592 back to calling write() if a single image is supplied. This means
1593 you can simply call the read_multi() or write_multi() functions
1594 without having to check if the type is formatted by that method.
1595 http://rt.cpan.org/Ticket/Display.html?id=19457
1596 http://rt.cpan.org/Ticket/Display.html?id=19458
1598 - the GIF loop extension can now be written. If you don't have
1599 libungif/giflib 4.1.4 (or some distribution's bugfixed equivalent) you
1601 http://rt.cpan.org/Ticket/Display.html?id=21185
1603 - getscanline() and setscanline() can now read/write palette index
1604 based data from/to the image for paletted images, by setting type to
1606 http://rt.cpan.org/Ticket/Display.html?id=20338
1608 - we no longer hassle you to disable GIF support
1609 http://rt.cpan.org/Ticket/Display.html?id=20687
1611 - minor documentation fixes
1614 Imager 0.53 - 26 Jul 2006
1617 This is a bugfix release.
1619 Some test code was left in a code path not covered by the test
1620 suite. A test was added to cover this code path and the test code was
1622 http://rt.cpan.org/Public/Bug/Display.html?id=20705
1625 Imager 0.52 - 25 Jul 2006
1628 This is primarily a feature release, but contains a fair few bug
1629 fixes, new features:
1631 - ability to read and write MS Windows ICO and CUR files
1633 - you can now add file format plugins to support new file formats
1635 - add POD coverage tests
1637 - setcolors() and addcolors() now accept color names and so on
1638 instead of requiring Imager::Color objects.
1639 http://rt.cpan.org/Ticket/Display.html?id=20056
1641 - flood_fill() can now fill to a specified border color instead of
1642 just to the area the same color as the seed.
1643 http://rt.cpan.org/Ticket/Display.html?id=19618
1648 - bounding_box for the T1 driver wasn't converting UTF8 to ascii when
1649 calculating the advance width.
1650 http://rt.cpan.org/Public/Bug/Display.html?id=20554
1652 - bounding_box for the T1 driver wasn't including leading and
1653 trailing spaces in the bounding box as the other drivers did, it also
1654 produced strange results for empty strings or strings containing only
1657 - when reading CMYK jpeg images they were being transferred to the
1658 image object as is, producing a four channel image. It only looked ok
1659 due to an old still unfixed Photoshop bug. We now convert from the
1660 inverted CMYK that photoshop (and Corel for example) produce into RGB.
1661 http://rt.cpan.org/Ticket/Display.html?id=20416
1663 - reading a CYMK TIFF would result in a 4 channel image, reading any
1664 image with more than 4 channels (eg. RGB with 2 alpha channels) would
1666 http://rt.cpan.org/Ticket/Display.html?id=20415
1668 - added /usr/local/include to the default include search path, since
1669 we were already searching /usr/local/lib for libraries.
1671 And various minor fixes and documentation updates.
1674 Imager 0.51 - 23 Apr 2006
1677 - fix a validation bug when processing JPEG EXIF data that can cause
1679 http://rt.cpan.org/Public/Bug/Display.html?id=18496
1681 - fix mis-processing of the src_maxx and src_maxy parameters of the
1683 http://rt.cpan.org/Public/Bug/Display.html?id=18712
1685 - fix a problem in Imager's "smart" handling of the color parameter
1687 http://rt.cpan.org/Public/Bug/Display.html?id=18561
1690 Imager 0.50 - 29 Mar 2006
1693 - CRITICAL: fixes a segmentation fault from attempting to write a 2
1694 or 4 channel image to jpeg or a 2 channel image to tga where the
1695 output is an in-memeory buffer.
1696 http://rt.cpan.org/Public/Bug/Display.html?id=18397
1698 - fixes an incorrect pointer parameter in the PNG code
1699 http://rt.cpan.org/Public/Bug/Display.html?id=18051
1701 - skip Inline::C tests when building in a directory with spaces
1702 http://rt.cpan.org/Public/Bug/Display.html?id=18049