1 Imager release history. Older releases can be found in Changes.old
6 - improved thread safety
7 - the internal error stack and log file handle are now in a per-thread
9 - JPEG now captures IPTC information in a thread-safe way
10 - avoid globals where possible for warning capture in libtiff
11 - use a mutex to avoid re-entering thread-unsafe giflib
12 - use a mutex to avoid re-entering thread-unsafe tifflib
13 - use a mutex to avoid re-entering thread-unsafe T1Lib
14 - use a library handle per thread for freetype 2.
17 - improve error reporting
18 - provide better control of the level of anti-aliasing
20 Imager 0.92 - 14 Aug 2012
23 - giflib 4.2 eliminates the GIF_LIB_VERSION macro, handle that
24 correctly for both probing and runtime.
25 https://rt.cpan.org/Ticket/Display.html?id=77672
27 - allow building JPEG/imexif.c on C89 compilers.
29 - allow building GIF/imgif.c on C89 compilers.
31 Imager 0.91 - 4 Jun 2012
36 - The size of rotated images is no longer rounded up so aggressively.
37 Added rounding to the linear interpolation done for rotate() and
38 matrix_transform() for 1 and 3 channel 8-bit images.
39 Adjusted the two tranlate matrices used to build the final rotation
40 matrix to use the distance between the outlier pixels rather than
41 the pixel dimensions (ie. dimension-1).
42 With all of this the output of rotate(degrees => 270) on an 8-bit
43 image exactly matches the output of rotate(right => 270).
44 https://rt.cpan.org/Ticket/Display.html?id=77063
48 - eliminate the old IIM_new(), IIM_DESTROY() names from Imager's
49 internals, those names only matter for the XS interface.
51 - improve error reporting when PERL_INITIALIZE_IMAGER_CALLBACKS finds
52 the API level compiled into a loadable module such as
53 Imager::File::GIF doesn't match that of Imager. Previously it
54 could be difficult to determine exactly which module was failing to
56 https://rt.cpan.org/Ticket/Display.html?id=77173
58 - added Imager->check_file_limits() as an interface to the
59 i_int_check_image_file_limits() API.
61 - Imager->set_file_limits(reset => 1) now resets the limits to the
62 defaults rather than setting them all to unlimited.
64 - wrote a brief security note as Imager::Security
65 https://rt.cpan.org/Ticket/Display.html?id=68910
67 Imager 0.90 - 30 Apr 2012
72 - Imager::Test::is_imaged() attempted to process an "epsilon"
73 parameter but the prototype didn't allow for the extra parameter.
74 Corrected the prototype.
76 - when downconverting samples (eg. from floating point to 8 bit)
77 Imager now rounds the sample value rather than attempting to
78 allocate input values over output values equally. The old
79 behaviour had the probably surprising effect of converting a
80 floating point 2.1/255.0 into an 8-bit 3 rather than the expected
82 This may result in slightly different 8 or 16-bit output images.
84 - BI_BITFIELD BMP images were handled incorrectly, both in
85 incorrectly calculating the space required for the masks and in
86 processing the image data itself.
87 https://rt.cpan.org/Ticket/Display.html?id=76736
89 - some odd width BMP BI_RLE4 images use run lengths that run one off
90 the edge of the image. Imager now allows this, discarding the
93 - odd length RLE4 runs in BMP images were decoded incorrectly.
95 - pkg-config could sometimes return a library that was in a directory
96 EU::MM / $Config{libpth} doesn't know about, but the compiler did.
97 If no -L is included in the pkg-config library information check if
98 EU::MM can find the library, and if not, search our configured
99 directories and insert that into the library flags.
100 https://rt.cpan.org/Ticket/Display.html?id=75869
102 - Imager::Probe can now probe for libraries with dependent libraries,
103 common for static linking, eg. libpng requires libz.
104 https://rt.cpan.org/Ticket/Display.html?id=74043
106 - libpng 1.5 specific probes were looking for libpng 1.4 filenames.
108 - added alternative probe configurations that try to link libz, to
109 handle a statically linked libpng.
110 https://rt.cpan.org/Ticket/Display.html?id=74043
112 - if a probe includes testcode, Imager::Probe now checks that code as
113 part of the process of checking each configuration rather than as a
114 post test of the found configuration. This allows alternate
115 configurations to be checked if a matching but non-working
116 configuration is found.
117 https://rt.cpan.org/Ticket/Display.html?id=74043
121 - when reading or writing images via callbacks, the default callbacks
122 now push an error message indicating that a required callback was
123 called but not supplied.
124 https://rt.cpan.org/Ticket/Display.html?id=76782
126 - clarify which callbacks are required for reading and writing TIFF
129 - improve logging for creation of callback I/O layers.
131 - a little more documentation for Imager::Probe.
133 - the i_get_file_background() and i_get_file_backgroundf() APIs now
134 return int to indicate whether the i_background tag was found.
137 - improve error reporting
138 - add png_interlace, png_bits tags
139 - read paletted images as paletted images, including transparency
140 - read 1 bit greyscale images as a type suitable for other file
141 handlers to write as bilevel
142 - read 16 bit/sample PNG as 16-bit/sample Imager images
143 - write "bilevel" paletted images as 1 bit grayscale images
144 - write paletted images as paletted images
145 - write 16-bit (or higher)/sample images as 16-bit/sample PNG
147 - improved metadata support
148 https://rt.cpan.org/Ticket/Display.html?id=29268
150 Imager 0.89 - 18 Mar 2012
155 - getpixel(..., type => "float") and the API i_gpixf() have been
156 broken on paletted images since they were implemented.
157 https://rt.cpan.org/Ticket/Display.html?id=75258
161 - links in the METHOD INDEX now point at the method documentation
162 rather than the heading you can find them under.
163 https://rt.cpan.org/Ticket/Display.html?id=71495
165 - Imager (and the bundled dynamic modules) no longer fallback to
166 using DynaLoader if loading via XSLoader fails.
167 For the bundled modules this could hide useful error messages.
168 https://rt.cpan.org/Ticket/Display.html?id=75560
170 - IM_DEBUG_MALLOC mymalloc() no longer sn?printfs() a string to a
171 buffer in the array of allocations, but just stores the filename
172 pointer and line number.
173 https://rt.cpan.org/Ticket/Display.html?id=70388
175 Imager 0.88 - 22 Feb 2012
178 - describe how to build libgif etc on OS X in such a way as to be
179 compatible with a fat binary perl (such as the system perl), in
181 https://rt.cpan.org/Ticket/Display.html?id=73371
183 - update the change notes for 0.77_01 to indicate that libungif
186 - add some other imaging modules to SEE ALSO
187 https://rt.cpan.org/Ticket/Display.html?id=73906
189 - note that the generator of the apparently non-DFSG-free postscript
190 in MMOne.pfb is a Debian package.
192 - setsamples() is now a true complement to getsamples() - it can
193 write 8-bit or floating point samples from a scalar or array
194 reference. This adds i_psamp() and i_psampf() to the C level API.
196 - the XS interfaces to i_gsamp(), i_gsampf() and i_gsamp_bits() have
197 changed to make better use of the typemap, but these aren't part of
198 the perl level API anyway. There were no changes to the C level
199 interfaces to these functions.
201 - getpixel() and setpixel() now accept a mix of scalar and array
202 references for the x and y parameters, and unequal array lengths is
204 https://rt.cpan.org/Ticket/Display.html?id=73697
208 - correctly calculate the size of a rotated image
209 https://rt.cpan.org/Ticket/Display.html?id=69261
211 - fix incorrect rounding of color values for matrix_transform() and
213 https://rt.cpan.org/Ticket/Display.html?id=69261
215 - Win32 text output is now done in normal combine mode, the alpha
216 component of the color is now significant.
217 https://rt.cpan.org/Ticket/Display.html?id=70014
219 - remove long unused gif case from read()
220 https://rt.cpan.org/Ticket/Display.html?id=69244 (partial)
222 - the getsamples() target parameter was being treated as a hashref
223 when it's meant to be an array reference.
224 https://rt.cpan.org/Ticket/Display.html?id=74882
226 - getpixel() and setpixel() now returns an empty list when invalid
227 parameters are supplied.
228 Invalid values for type now result in an error for getpixel().
229 https://rt.cpan.org/Ticket/Display.html?id=73697
231 Imager 0.87 - 03 Jan 2012
234 - document the return value of the filter() method.
235 https://rt.cpan.org/Ticket/Display.html?id=72369
237 - document i_gsamp_bits() and i_psamp_bits().
238 https://rt.cpan.org/Ticket/Display.html?id=68815
240 - properly increment the Imager::Matrix2d $VERSION.
242 - actually include the Imager::Test tests in the dist
244 - correctly read and write 256x256 pixel ICO files
245 https://rt.cpan.org/Ticket/Display.html?id=69599
247 - make the error message from read() or read_multi() when they can't
248 identify the file type match reality.
249 https://rt.cpan.org/Ticket/Display.html?id=72475
251 - read() now uses $FORMATGUESS if it can't determine the file type
252 based on the file header, to match read_multi().
254 - re-work and add tests for def_guess_type(). def_guess_type() no
255 longer returns any random file extension as the file type.
257 - add gray4, gray16 and gray as presets for make_colors.
258 https://rt.cpan.org/Ticket/Display.html?id=67911
260 - add make_palette() method that produces a palette from one or more
263 - fix the Imager dependency for the separately distributed font
265 https://rt.cpan.org/Ticket/Display.html?id=72643
267 - fix i_render_color() to properly draw in "normal" mode - ie. when
268 writing to a 1 or 3 channel image the second or fourth channel of
269 the source color was being ignored, it is now significant.
270 https://rt.cpan.org/Ticket/Display.html?id=71564
272 Imager 0.86 - 31 Oct 2011
275 - improve error reporting for W32 tests
277 Imager 0.85_02 - 24 Oct 2011
282 - eliminate unused i_gif_opts type (clean-up)
283 https://rt.cpan.org/Ticket/Display.html?id=69245
285 - fix combine=0 fill color anti-aliasing on the double/sample path
286 https://rt.cpan.org/Ticket/Display.html?id=71309
288 - make default text color non-transparent
289 https://rt.cpan.org/Ticket/Display.html?id=71469
291 - apply the last of the Debian unforwarded spelling fixes
292 https://rt.cpan.org/Ticket/Display.html?id=70656
294 - the log() method used its message parameter as a C level format
296 https://rt.cpan.org/Ticket/Display.html?id=71653
298 - provide our own STRLEN typemap entry for older perls.
299 https://rt.cpan.org/Ticket/Display.html?id=71641
301 - add extra ppport.h configuration to support older perls.
303 - depend on Scalar::Util, since we use it and older perls don't have
306 - add overloaded eq to Imager::Matrix2d, since older perls don't seem
307 to synthesize it from overloaded "".
309 - use T1_StrError() for error messages on modern libt1
310 https://rt.cpan.org/Ticket/Display.html?id=69879
312 - actually load the font rather than just adding it to the catalog on
315 - Imager::Font->new now produces better error messages for the T1
318 - the font has_chars() method now returns perl's true and false
319 values in list context rather than integers, which should be more
321 https://rt.cpan.org/Ticket/Display.html?id=69158
323 - the btm data structure used by the flood_fill code is now
324 initialized more efficiently.
325 https://rt.cpan.org/Ticket/Display.html?id=68994
327 - updated the Thanks list in README
328 https://rt.cpan.org/Ticket/Display.html?id=71607
330 - check there's at least one coefficient for the convolution filter
331 https://rt.cpan.org/Ticket/Display.html?id=68993
333 - make the APIRef synopsis ordering consistent, older versions of
334 perl could order it differently.
335 https://rt.cpan.org/Ticket/Display.html?id=71675
337 - we rely on Config.pm's d_vsnprintf as to whether we use
338 vsnprintf/snprintf, which is defined in the Win32 Config.pm even
339 though it only has _ prefixed versions of these. Define our own
340 prefixed names on Win32.
341 https://rt.cpan.org/Ticket/Display.html?id=71642
343 - fix library detection with MSVC
345 - search a few more library directories, so EU::MM doesn't discard
346 them. Hopefully fixes:
347 https://rt.cpan.org/Ticket/Display.html?id=71643
349 Imager 0.85_01 - 10 Oct 2011
352 - add simple tests for the Imager::Test test_image generators
354 - io_glue I/O buffering re-work:
356 - reorganize io_glue to do it's own buffering by default
358 - the unbuffered functions are available as i_io_raw_read() (or
359 raw_read() from perl) etc but are not recommended for typical
362 - use the new i_io_peekn() when checking for file magic to avoid
363 seek, allowing Imager to detect the file type and read the file
364 from an unseekable stream (for formats that don't use random
367 - added several new I/O layer API functions.
369 - fix the TGA performance problem, most noticably on Win32
370 https://rt.cpan.org/Ticket/Display.html?id=70037
372 - TIFF now uses wrapper functions of the correct types to avoid casts
373 https://rt.cpan.org/Ticket/Display.html?id=69912
375 - the callback IO object did its own buffering, controlled by the
376 maxbuffer parameter supplied to the read() and write() methods.
377 This buffering has been removed, to avoid redundancy with the
378 common io_glue buffering. This also avoids a bug in that code
379 which could rarely pass a zero length to the read callback and
380 then panic about the result.
382 - the callback IO object now tests the result of calling the close
383 callback, which should return true for success.
385 - the PNM reader did its own buffering. This buffering has been
386 removed to avoid redundancy with the common io_glue buffering.
388 - previously the read handlers for fd and callback I/O layers would
389 call the underlying interface (POSIX read or your supplied callback)
390 until it filled the buffer. It now only makes one call.
392 - added public constructors for I/O layer objects (see Imager::IO)
394 - all core file handlers now use the i_io_foo() wrappers to gain
395 access to buffered I/O rather than calling the I/O layer
398 - all core file handlers now check for error on close.
400 - Backward compatibility: if you hava custom file handlers, you can
401 use i_io_write() etc since they're available as macros in older
404 - eliminate the final remnants of io_glue_commit_types().
406 - bump IMAGER_API_VERSION, since the above may break assumptions.
408 - removed the long unused i_gen_reader() and i_gen_writer() utility
411 Imager 0.85 - 29 Aug 2011
414 The main changes in the release versus 0.84 are:
416 - on 64-bit systems, 64-bit types are consistently used for image
417 dimensions and co-ordinated, and for memory block sizes.
419 - handle IFD loops in TIFF files correctly. Previously this would
420 lead to an infinite loop.
424 - fix the link in the getheight() entry in the method index
426 Imager 0.84_02 - 22 Aug 2011
429 Development release, this will become 0.85 if CPAN testers is
434 - the image file limits set by set_file_limits() weren't being
435 checked when reading TIFF files.
436 https://rt.cpan.org/Ticket/Display.html?id=69915
438 - Provide more information about file format module load errors on a
439 failed image file read() or write().
440 https://rt.cpan.org/Ticket/Display.html?id=69194
442 - use TIFFReadDirectory() instead of TIFFSetDirectory() to iterate
443 through TIFF images, since it checks for IFD loops.
444 https://rt.cpan.org/Ticket/Display.html?id=69914
446 - don't leak memory when out of range palette indexes are supplied to
448 https://rt.cpan.org/Ticket/Display.html?id=69242
450 - require a later version of CPAN::Meta to ensure JSON::PP and
451 CPAN::Meta::YAML are available.
452 https://rt.cpan.org/Ticket/Display.html?id=69008
454 - hoist the per-line calculations for the flines implementations, and
455 modernize the tests a bit.
456 https://rt.cpan.org/Ticket/Display.html?id=70126
458 - detect snprintf()/vsnprintf() (cheat by using Config.pm) and use
460 https://rt.cpan.org/Ticket/Display.html?id=69147
462 - if t1lib failed to reinitialize it would be left as marked
464 https://rt.cpan.org/Ticket/Display.html?id=69877
466 - update the bundled (and still modified) Devel::CheckLib
467 https://rt.cpan.org/Ticket/Display.html?id=69170
469 Imager 0.84_01 - 8 Aug 2011
472 Development release as a sanity check for the types re-work.
474 Massive types re-work:
476 - the type used internally for pixel co-ordinates and image sizes is
477 now 64-bit on 64-bit platforms (at least sane ones).
479 - size_t is now used consistently for memory block sizes.
481 - since this changes the binary interface, the Imager API version has
482 been incremented. Any module that uses the API will need to be
483 rebuilt. In most cases that will be enough, but calls to any APIs
484 that take a pointer to image sizes may need source changes.
486 - you should be able to create very large images on 64-bit systems,
487 if you have enough memory. Successfully created a 32768 x 49192 x
488 3 channel image, filled with a tiled image and scaled it. The
489 unscaled image was also successfully saved to a JPEG.
491 - check the image size before attempting to write BMP, GIF, JPEG,
492 PNG, SGI, TGA, TIFF images.
494 - correctly handle reading TGA images over 32767 pixels wide or tall.
498 - the gif_left and gif_top tags are now clamped to non-negative
499 values when writing a GIF image.
501 - removed dead callback read/write code
503 The default maximum memory size when reading files is now 1G.
505 Imager 0.84 - 20 Jun 2011
508 - Imager no longer inherits from Exporter (unless you're running an
511 - Imager can now write progressive JPEGs (it could always read them).
512 https://rt.cpan.org/Ticket/Display.html?id=68691
516 - re-work, document and test Imager's logging facility.
517 https://rt.cpan.org/Ticket/Display.html?id=65227
519 - fix META.yml testing and the generated META.yml
520 https://rt.cpan.org/Ticket/Display.html?id=65235
522 - test and add error reporting to to_*() family methods
524 - add to_rgb_double() method.
525 https://rt.cpan.org/Ticket/Display.html?id=65101
527 - Imager no longer exports anything by default
528 https://rt.cpan.org/Ticket/Display.html?id=65228
530 - convert colors to grayscale if the supplied (or generated) palette
531 contains only grays when performing error diffusion color
533 https://rt.cpan.org/Ticket/Display.html?id=68508
535 - writing a paletted image to GIF wouldn't always use the colors
536 supplied (or generated, eg. via make_colors => "mono"), which was
538 https://rt.cpan.org/Ticket/Display.html?id=67912
540 - replace (imager|tony)@imager.perl.org in the doc, since I don't
541 plan to continue receiving mail at that address.
542 https://rt.cpan.org/Ticket/Display.html?id=68591
544 Imager 0.83 - 21 May 2011
549 - diag() the error message on failure for some TIFF tests that are
550 failing on a Solaris smoker.
551 http://www.cpantesters.org/cpan/report/6396db1e-8090-11e0-9682-112b785ebe45
553 Imager 0.82_01 - 17 May 2011
556 Dev release, in case the compose tests are too sensitive.
560 - Imager::Font::T1 incorrectly checked for absolute filename under
561 Win32. Thanks to kmx for the report and fix.
562 https://rt.cpan.org/Ticket/Display.html?id=67963
564 - compose() with the target, source or mask position off the top or
565 left of the target image didn't clip the source image correctly.
566 https://rt.cpan.org/Ticket/Display.html?id=67220
568 - compose() now returns a useful error message on a non-positive
571 - compose.im now at 100% test coverage. (As opposed to, umm, much,
574 Imager 0.82 - 14 Mar 2011
579 - eliminate calls to i_has_format() from the test suite, since it's
580 no longer a useful way to check for file format support. Eliminate
581 i_has_format() from the functions exposed via XS.
582 https://rt.cpan.org/Ticket/Display.html?id=65863
584 - eliminate calls to note(), which isn't in the (very old) version of
585 Test::More we have as a pre-requisite. note() is modern enough
586 that I don't feel a need to require a Test::More upgrade for it.
587 https://rt.cpan.org/Ticket/Display.html?id=65864
589 - skip the threads tests on Test::More 2.00_*
590 https://rt.cpan.org/Ticket/Display.html?id=65812
592 - add an (unshipped) test to check Imager's internal POD links
593 https://rt.cpan.org/Ticket/Display.html?id=65749
595 - improve the library detection summary
596 https://rt.cpan.org/Ticket/Display.html?id=9675
598 - increase the version of Imager::Font::Type1 so that upgrades don't
599 downgrade the version in this file.
600 https://rt.cpan.org/Ticket/Display.html?id=66250
602 - if we see an -rpath (or -R) option in $Config{lddlflags} supply
603 that option for the directories that would normally go in
604 LD_RUN_PATH. Typically an explicit -rpath overrides LD_RUN_PATH.
605 https://rt.cpan.org/Ticket/Display.html?id=65955
607 Imager 0.81 - 14 Feb 2011
610 - added coverage tests for masked images (maskimg.c @100% test coverage)
612 - add hsv() method to Imager::Color
613 Thanks to Leolo (Philip Gwyn)
614 https://rt.cpan.org/Ticket/Display.html?id=65385
616 - split libt1 Type 1 font support into a sub-module
617 https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
619 - add a preload() class method for use in forking servers, and to
620 work around limitations in PAR.
621 https://rt.cpan.org/Ticket/Display.html?id=65665
625 - paletted writes to a masked image are now masked correctly.
626 Revealed by new coverage tests.
628 - update the filter plugin documentation.
629 https://rt.cpan.org/Ticket/Display.html?id=56513
631 - add the matrix() method to Imager::Matrix2d to allow creation of a
632 matrix with specified co-efficients. You can now multiple an
633 Imager::Matrix2d object by a 9 element array ref or a number.
634 https://rt.cpan.org/Ticket/Display.html?id=29938
636 - really fix loading TTF fonts with FT2 when FT1 isn't available.
637 Thanks to Leolo (Philip Gwyn)
638 https://rt.cpan.org/Ticket/Display.html?id=65386
639 https://rt.cpan.org/Ticket/Display.html?id=62855
641 - make sure each test script that needs testout/ creates it.
642 https://rt.cpan.org/Ticket/Display.html?id=65088
644 - handle a slightly different warning from libtiff 4.x
645 https://rt.cpan.org/Ticket/Display.html?id=65268
647 - the sat transform2() op returned an incorrect saturation.
648 https://rt.cpan.org/Ticket/Display.html?id=65391
650 Imager 0.80 - 17 Jan 2011
653 - added coverage tests for Imager::Fountain and Imager::Color::Float
655 - Imager is now maintained in git
656 http://git.imager.perl.org/imager.git
657 git://git.imager.perl.org/imager.git
661 - images with an translucent alpha channel were not scaled correctly
662 by the default (qtype=normal) scaling method.
663 https://rt.cpan.org/Public/Bug/Display.html?id=63922
665 - Imager::Color::Float now translates "#FFFFFF" to white instead of
666 just a little darker.
668 - make the default color map build algorithm "mediancut". This
669 changes the default color map builder for writing GIFs back to what
670 it was in 0.77, reverting a performance regression.
671 https://rt.cpan.org/Ticket/Display.html?id=64785
673 - handle failure to create a masked image correctly
675 Imager 0.79 - 10 Dec 2010
678 - add Imager::Test to the POD coverage tests and document the missing
681 - the convert() method now optimizes the case where all output
682 channels are either 0, sourced from a single input channel or 1.
683 This significantly speeds up presets like "addalpha", "green".
684 https://rt.cpan.org/Ticket/Display.html?id=51254
686 - add wiggle.pl sample, as suggested by Dan Oppenheim.
688 - add the combine() method to combine channels from multiple source
689 images into a new image
690 https://rt.cpan.org/Ticket/Display.html?id=11872
694 - treat the co-efficients for convert() as doubles instead of floats.
696 - If a higher (earlier) priority font handler failed to load, that
697 would crash preventing loading of later font handlers.
698 https://rt.cpan.org/Ticket/Display.html?id=62855
700 - parse defines from the options returned by pkg-config --cflags
701 https://rt.cpan.org/Ticket/Display.html?id=63223
703 - a regen of the MANIFEST revealed that GIF and FT2 tests weren't
704 included in the tarball. They are now included.
706 Imager 0.78 - 4 Oct 2010
711 - don't access deprecated members of the png_structp.
712 https://rt.cpan.org/Ticket/Display.html?id=60242
714 - document that using color objects is faster than supplying colors
716 https://rt.cpan.org/Ticket/Display.html?id=61047
718 - Imager::Probe now accepts array references for incpath and libpath.
719 https://rt.cpan.org/Ticket/Display.html?id=60244
721 Imager 0.77_02 - 27 Sep 2010
724 - moved Win32, FreeType 2 font support into sub-modules.
725 https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
726 Uses Imager::Probe now.
727 https://rt.cpan.org/Public/Bug/Display.html?id=61328
729 - tested successfully with jpeg-8b
730 https://rt.cpan.org/Ticket/Display.html?id=60221
734 - from _01: look for missing file support test files in the right
737 - flood_fill() wouldn't fill the right side of a single scan-line
739 Thanks to Nicolas Roggli for reporting this.
741 - flood_fill wouldn't fill to the left edge of the image if the
742 starting line didn't reach the left edge.
743 Thanks to Nicolas Roggli for reporting this.
745 Imager 0.77_01 - 13 Sep 2010
748 - add each library-directory/pkgconfig/ to the pkg-config search path
750 Thanks to Justin Davis.
751 https://rt.cpan.org/Ticket/Display.html?id=60491
753 - moved GIF, TIFF, JPEG file handling code into sub-modules in
754 preparation for separate distribution.
755 https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
757 Note: this removed support for libungif from Imager.
759 - optimize filled box drawing (color, not fill)
763 - Imager::Probe was calling ExtUtils::Liblist to initialize
764 LD_RUN_PATH supplying an undefined value rather than the found
765 directory. Thanks to Justin Davis.
766 https://rt.cpan.org/Ticket/Display.html?id=60491
768 - only prepend ./ to font filenames when passing them to T1Lib and
769 then only when it would use its search mechanisms.
770 https://rt.cpan.org/Ticket/Display.html?id=60509
772 - fix the cache check for the X rgb.txt loader. This is typically
773 used for color translation on Unix-like systems, and the fix
774 improves performance of supplying colors by name by about 80 times.
775 Test code that managed 3400 10x10 pixel boxes/second sped up to
778 - clarify that Imager doesn't write EXIF metadata to images.
779 https://rt.cpan.org/Ticket/Display.html?id=60637
781 - Imager::Probe can now search subdirectories under its include path.
782 Used by the PNG Makefile.PL to find headers and libraries when they
783 aren't in the base directory, as in cygwin.
784 https://rt.cpan.org/Ticket/Display.html?id=60635
786 Imager 0.77 - 11 Aug 2010
789 I don't want Imager::File::PNG indexed as part of Imager, but forgot
790 to update the META.yml before updating the version.
792 - don't index Imager::File::PNG as part of Imager
794 - add resources to META.yml
796 Imager 0.76 - not released
801 - the align_string() method would ignore a string of "0" due to a
803 Thanks to Maurice Height for reporting this.
804 https://rt.cpan.org/Ticket/Display.html?id=60199
806 Imager 0.75_03 - 09 Aug 2010
811 - read_types() and write_types() would include png when it wasn't
812 available due to a problem with the %formats tie
814 - handle dependent libraries correctly (eg -lpng requiring -lz) in
815 the code run phase of library probing.
817 Imager 0.75_02 - 07 Aug 2010
822 - add file missing from MANIFEST, which was causing TIFF failures.
824 Imager 0.75_01 - 06 Aug 2010
827 Test release for the new PNG probe.
829 - added the ability to read multiple-image PNM files.
830 Note that unlike the pbm/pgm/ppm specification this accepts mixed
831 format files and allows white space padding between files.
832 Thanks to Philip Gwyn (Leolo) for this patch.
834 - moved the PNG file handling code into a sub-module in preparation
835 for separate distribution.
836 https://rt.cpan.org/Ticket/Display.html?id=49616 (partial)
837 Also helps avoid complications from -I/-L compile/link options from
842 - Imager->new(data => $data) didn't try to process image file data in
844 https://rt.cpan.org/Ticket/Display.html?id=58761
846 - t/t50basicoo.t no longer depends on the other tests to generate its
848 https://rt.cpan.org/Ticket/Display.html?id=9798
849 Also, it wasn't testing pnm (pnm vs ppm mix-up)
851 - update the documentation of hardinvert to match the change in 0.62.
852 https://rt.cpan.org/Ticket/Display.html?id=59785
854 - added hardinvertall filter which also inverts the alpha channel
857 - when probing for TIFF, set LD_RUN_PATH just as the Makefile does so
858 the probe can find the library for the test run.
859 https://rt.cpan.org/Ticket/Display.html?id=57518
861 Imager 0.75 - 20 Jun 2010
864 - use PERL_NO_GET_CONTEXT to slightly improve performance on threaded
869 - an opacity fill based on a fountain fill would segfault when
870 filling an 8-bit/sample image.
872 - merge thickline branch polygon fix
873 https://rt.cpan.org/Ticket/Display.html?id=43518
875 Imager 0.74 - 7 May 2010
880 - read_multi() didn't handle a missing file format library correctly,
881 aborting on failing to call i_readgif_multi_wiol() or
882 i_readtiff_multi_wiol().
884 - fix spelling errors patched by Debian
885 http://svn.debian.org/viewsvn/pkg-perl/trunk/libimager-perl/debian/patches/spelling.patch?revision=54839&view=markup
887 - add an (unshipped) author test to spellcheck Imager's POD.
889 - update the TIFF file format documentation
890 https://rt.cpan.org/Ticket/Display.html?id=56510
892 - lib/Imager/IO.pod was written almost 4 years ago but never shipped.
894 Imager 0.73 - 15 Mar 2010
897 - implement outline circles, both anti-aliased and not
898 https://rt.cpan.org/Ticket/Display.html?id=19755
900 - a combine => "none" fill to a 1 or 3 channel image would produce
901 the incorrect colour.
903 Imager 0.72 - 09 Dec 2009
906 Bump version for release, since 0.71_03 is stable with CPAN testers.
908 Imager 0.71_03 - 5 Dec 2009
911 - further adjust the threads test so it only performs the tests on
912 perls where it's expected to work, and only if the threads module
915 Imager 0.71_02 - 1 Dec 2009
918 - adjust the way we load the threads module for the threads test so
919 it works with non-threaded perls
921 Imager 0.71_01 - 30 Nov 2009
926 - use scanline oriented operations to flip images instead of pixel
928 https://rt.cpan.org/Ticket/Display.html?id=39278
930 - use double/sample operations to flip large sample images instead of
931 8-bit sample operations.
932 https://rt.cpan.org/Ticket/Display.html?id=39280
935 https://rt.cpan.org/Ticket/Display.html?id=51874
937 - prevent double-frees when someone creates Imager objects and then
938 creates a thread. Note: this just handles some simple cases,
939 Imager doesn't support perl threads, and isn't likely to.
940 https://rt.cpan.org/Ticket/Display.html?id=52268
942 Imager 0.71 - 16 Nov 2009
945 - add the opacity fill type - an adaptor that modifies the opacity of
950 - the conv filter now enforces that the sum of the coefficients is
951 non-zero. Also, rather than skipping pixels off the edge off the
952 edge of the image, the closest edge pixel is used. Previously
953 dividing by the zero sum of coefficients could cause invalid
954 results or runtime exceptions.
955 Thanks to David Cantrell's Alpha-NetBSD CPAN test box for revealing
958 Imager 0.70 - 21 Sep 2009
963 - release image row and comments memory on all error returns in gif
966 - handle zero length extensions, previously this would cause a null
968 Thanks to Krzysztof Wojtaś for the test data and fix for this.
970 - an integer division meant that preview scaling to below 1 pixel
971 wide or high (which isn't too useful anyway) was calculating using
972 NaNs on most platforms, and causing an exception on others.
973 Thanks to David Cantrell for producing a backtrace of the crash on
974 his Alpha-NetBSD CPAN test box which made it possible to track this
977 Imager 0.69 - 08 Sep 2009
982 - broken test fix - was attempting to call a function skip_all, when
983 that should be a parameter to plan().
985 - briefly document apidocs.perl, the tool used to build
986 Imager::APIRef and make some minor enhancements
988 - various minor documentation enhancements and fixes.
990 Imager 0.68 - 07 Sep 2009
993 - Imager->new(file => $filename) and other similar incantations will
995 https://rt.cpan.org/Ticket/Display.html?id=48261
999 - avoid using CHECK as a label in Imager::Test
1000 http://nntp.x.perl.org/group/perl.cpan.testers/5220921
1002 - re-work most image file test files that require a library into
1003 separate library present/not present files to remove stupidly long
1006 - don't treat rubthrough() outside the bounds of the target image as
1008 http://nntp.x.perl.org/group/perl.cpan.testers/5185716
1010 Imager 0.67_01 - 02 Sep 2009
1015 - correct documentation of default of raw image interleave read
1017 https://rt.cpan.org/Ticket/Display.html?id=42074
1019 - add raw_ prefix to raw read parameters, though the original names
1022 - fail the read if an invalid raw_interleave parameter is supplied
1024 - warn if no interleave or raw_interleave parameter is supplied,
1025 since the documented default was wrong, and incompatible with the
1028 - for reading raw images, if raw_storechannels > raw_datachannels,
1029 set the extra channels in the image to 0
1031 - when probing for executables like freetype-config, search for .bat
1032 and .cmd on MSWin32, as well as .exe.
1033 https://rt.cpan.org/Ticket/Display.html?id=49275
1035 - re-work the external libraries section of README:
1036 - list Debian and Redhat package names for each library
1040 - use the new EU::MM META_MERGE facility instead of generating
1041 META.yml from scratch
1042 https://rt.cpan.org/Ticket/Display.html?id=47888
1044 - use Devel::CheckLib (bundled, modified) to check which release of
1045 libtiff is installed and reject 3.9.0
1046 http://bugzilla.maptools.org/show_bug.cgi?id=2088
1047 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=543079
1049 Imager 0.67 - 12 Dec 2008
1054 - fix a packaging error
1056 Imager 0.66 - 12 Dec 2008
1059 - 24-bit color .ICO/.CUR files can now be read.
1063 - an optimization skipping 0 src alpha values could cause the
1064 rubthrough() to read past the end of a buffer.
1065 http://www.nntp.perl.org/group/perl.cpan.testers/2008/05/msg1509184.html
1067 - corrected a reference leak where writing GIFs would leak memory.
1068 This could also happen calling to_paletted().
1069 Also documented the underlying long existing feature where the
1070 colors parameter is filled with the generated color table and added
1072 http://rt.cpan.org/Ticket/Display.html?id=41028
1074 - write out the image size in bytes field of a BMP correctly.
1075 http://rt.cpan.org/Ticket/Display.html?id=41406
1077 - add limited tests for Imager::ExtUtils
1079 - make Imager::ExtUtils->includes use an absolute path, since
1080 a relative path could cause failures using Inline::C.
1081 http://rt.cpan.org/Ticket/Display.html?id=37353
1083 - re-arrange the POD for Imager::Font::BBox:
1084 - mark total_width(), pos_width(), end_offset() obsolete, since
1085 they're mostly for backwards compatibility
1086 - group width methods and height methods
1087 https://rt.cpan.org/Ticket/Display.html?id=39999
1089 Imager 0.65 - 20 May 2008
1094 - In some cases when an error occurs reading those parts of a JPEG
1095 file after the image the scan-line buffer could be freed a second
1096 time. In cases where the the error occured while reading the image
1097 data it's possible that the buffer could have leaked.
1098 Thanks to Gabriel Vasseur for reporting this and help in tracking
1101 - the gif_screen_height tag was overriding the screen width and being
1102 ignored for the screen height when present.
1103 https://rt.cpan.org/Public/Bug/Display.html?id=35568
1105 Imager 0.64 - 23 April 2008
1108 This is a bug fix release. This includes a fix for a possible
1113 - Possible security issue: The floating point sample path for image
1114 based fills had a buffer overflow. This would overwrite the end of
1115 a malloc()ed buffer with double precision floats.
1116 http://rt.cpan.org/Ticket/Display.html?id=35324
1119 - check that the result of fileno($fh) is defined rather than simply
1120 true when read() or write() is supplied with an fh parameter.
1121 http://rt.cpan.org/Ticket/Display.html?id=35139
1123 - i_scale_axis() wasn't checking the result of i_img_new_ch()
1124 resulting in a SIGSEGV when attempting to scale an image to a size
1125 too large to fit in memory. This is a NULL pointer access issue,
1126 not a buffer overflow.
1127 Added a check for the failure.
1128 scale_calculate() (and hence scale()) will now fail if any of the
1129 scale size parameters are a reference.
1130 http://rt.cpan.org/Ticket/Display.html?id=35172
1132 - Regression: filling a greyscale image with a hatch used the wrong
1133 color channels from the supplied fg/bg colors.
1134 https://rt.cpan.org/Ticket/Display.html?id=35278
1136 - fixed a related problem for image fills.
1138 Imager 0.63 - 7 April 2008
1141 This release primarily contains changes to improve ease of use -
1142 rather than you having to convert images to the appropriate number of
1143 channels, Imager handles it internally. How to handle drawing colors
1144 and the default combine mode is a thornier problem left for some other
1147 - the font libraries are now only initialized when needed.
1148 http://rt.cpan.org/Ticket/Display.html?id=28825
1150 - moved the imtoc.perl code into Imager::Preprocess
1152 - paste() and rubthrough() now adapt the source image data to the
1153 destination, so you can now safely paste/rubthrough from greyscale
1154 images to color images or back, or from alpha channel images to
1155 noalpha channels or back.
1156 https://rt.cpan.org/Ticket/Display.html?id=30908
1158 - rubthrough() now falls back to pasting when the source doesn't have
1159 an alpha channel. This effectively treats the source as having a
1160 max alpha channel, the right thing to do.
1161 http://rt.cpan.org/Ticket/Display.html?id=29944
1163 - re-worked most of the area filling code to use a common set of
1164 functions when filling.
1165 Corrected normal combine mode.
1166 Rewrote most of the combine modes to match the way the SVG draft
1167 defines them with respect to a translucent source and destination.
1168 Added tests for translucent source and destination.
1169 Added tests to check 8-bit/sample and double/sample combines work
1171 https://rt.cpan.org/Ticket/Display.html?id=29879
1173 - writing a 2 or 4 channel image to a JPEG file will now write that
1174 image as if composited against a background, black by default,
1175 overridable with the i_background tag/parameter.
1176 https://rt.cpan.org/Ticket/Display.html?id=29876
1178 - writing a 2 or 4 channel image to a PGM/PPM file will now write
1179 that image as if composited against a background, black by default,
1180 overridable with the i_background tag/parameter.
1181 http://rt.cpan.org/Ticket/Display.html?id=30074
1183 - writing a 2 or 4 channel image to a BMP file will now write that
1184 image as if composited against a background, black by default,
1185 overridable with the i_background tag/parameter.
1186 http://rt.cpan.org/Ticket/Display.html?id=30075
1190 - Imager::Matrix2d->translate() now only requires one of the x or y
1192 http://rt.cpan.org/Ticket/Display.html?id=29937
1194 - mixing qtype scaling now sets all channels of a pixel to zero if
1195 the pixel has zero coverage (zero alpha). This should produce more
1196 compressible output files.
1197 http://rt.cpan.org/Ticket/Display.html?id=32324
1199 - removed the pointless #! line from lib/Imager/Font/Wrap.pm
1201 https://bugzilla.redhat.com/show_bug.cgi?id=166254
1202 I'm not changing the #! lines of the sample code, since it's sample
1203 code, not intended for installation.
1204 http://rt.cpan.org/Ticket/Display.html?id=33408
1206 - some TGA images weren't being detected correctly as TGA images
1207 https://rt.cpan.org/Ticket/Display.html?id=32925
1209 - handling of the left-over bit for 16-bit/pixel TGA images has been
1210 changed to match the behaviour of the GIMP. Previously the bit
1211 being set was treated as an opaque pixel, but one user reported a
1212 problem with loading such an image. I haven't been able to find any
1213 tools beyond the GIMP that handle alpha-channel 16-bit TGAs, so
1214 I'll match it's behaviour. See issue 114913 in the GIMP's
1216 http://rt.cpan.org/Ticket/Display.html?id=32926
1218 Imager 0.62 - 10 December 2007
1221 - Makefile.PL now expands ~/path supplied to --incpath or --libpath
1222 to /path under your home directory.
1223 http://rt.cpan.org/Ticket/Display.html?id=29484
1225 - the old dynaload code used Mach API functions to load dynamic
1226 libraries on Mac OS X. These APIs have been deprecated in OS X
1227 10.5 and were causing some build problems.
1228 So henceforth Imager uses the dlopen() family of functions, and you
1229 will need version 10.3 or later of OS X.
1231 - added the det() function to the transform2() engine.
1232 added the sample quad_to_square.pl
1233 Courtesy Richard Fairhurst.
1234 http://rt.cpan.org/Ticket/Display.html?id=31244
1238 - samples/gifscale.pl sourced the base value for gif_top from
1240 Thanks to Eleneldil G. Arilou for pointing this out.
1242 - t/t82inline.t no longer loads B at runtime, to work around a bug
1243 in some 5.005_0[45] installations.
1244 http://rt.cpan.org/Ticket/Display.html?id=30508
1246 - work around Module::Depends::Intrusive bug #21229
1247 http://rt.cpan.org/Ticket/Display.html?id=30520
1249 - the hardinvert filter no-longer inverts the alpha channel.
1250 http://rt.cpan.org/Ticket/Display.html?id=30002
1252 - the hardinvert filter now supports large samples
1254 Imager 0.61_02 - 28 November 2007
1257 - major TIFF support re-work
1258 http://rt.cpan.org/Ticket/Display.html?id=20329
1260 - added a C level image interface for accessing samples from 1-32
1261 bits, exposed this at the perl level in getsamples()
1263 - the conv filter now works at floating point precision for high bit
1266 - added is_bilevel method to test whether an image should be written as
1267 a bilevel image if the image format supports it.
1269 - added -log-stderr as an Imager import list option
1271 - added some important types to Imager::APIRef
1273 - added test_image_double() to Imager::Test
1277 - Imager::Fountain couldn't read GIMP gradient files with 10 or more
1280 - the scale() method with qtype mixing now handles images with an
1281 alpha channel correctly.
1283 - fixed a broken link from the "animated GIF" entry in the concept index.
1284 Thanks to Slaven Rezic.
1285 http://rt.cpan.org/Ticket/Display.html?id=30889
1287 - on some perl's the infix expression parser test would fail due to
1288 actions in the grammar returning false. Made sure all actions return
1290 Thanks to Richard Fairhurst for spending a lot of time in tracking
1292 http://rt.cpan.org/Public/Bug/Display.html?id=29562
1294 Imager 0.61 - 5 November 2007
1297 - added samples/gifscale.pl, which adjusts the screen size/position tags
1298 when scaling an animated gif
1299 http://rt.cpan.org/Ticket/Display.html?id=27591
1303 - correct handling of sz in matrix_transform() - this should allow
1304 perspective type transformations to work now.
1305 http://rt.cpan.org/Ticket/Display.html?id=29936
1307 - prevent a cast to integer warning on x64 builds in datatypes.c
1308 also fixed some other type warnings
1309 https://rt.cpan.org/Ticket/Display.html?id=30204
1311 - some sub-directory tests depended on files produced by the parent
1313 http://rt.cpan.org/Ticket/Display.html?id=30203
1315 - Imager::Font::Wrap doesn't correctly set savepos
1316 thanks to Nikita Dedik and Eleneldil G. Arilou for reporting this.
1317 http://rt.cpan.org/Ticket/Display.html?id=29771
1319 - test 171 in t/t01introvert.t was failing on perls configured to
1321 http://rt.cpan.org/Ticket/Display.html?id=29413
1323 - the code for the transform2() uminus operator was missing a break.
1324 Added tests for better code coverage of the ops.
1325 http://rt.cpan.org/Ticket/Display.html?id=29296
1327 - the SGI RLE compression code could overflow its compression buffer
1328 http://rt.cpan.org/Ticket/Display.html?id=30334
1330 - the 32-bit output function used by the SGI code only handled values
1331 under 0x10000. This was most noticable when writing large RLE images.
1332 http://rt.cpan.org/Ticket/Display.html?id=30335
1334 - validate chan_count for chans == NULL for each of the i_gsamp()
1336 http://rt.cpan.org/Ticket/Display.html?id=28985
1338 - attempt to work around the test failure at
1339 http://www.nntp.perl.org/group/perl.cpan.testers/2007/09/msg650810.html
1340 http://rt.cpan.org/Ticket/Display.html?id=29562
1342 - improve the error messages produced when attempting to read or write
1343 an unknown image file format.
1344 http://rt.cpan.org/Ticket/Display.html?id=30103
1346 - improve the transform2() documentation
1347 http://rt.cpan.org/Ticket/Display.html?id=29267
1349 - correctly generate the author key in META.yml
1350 http://rt.cpan.org/Ticket/Display.html?id=30377
1352 - correctly blend a rotated (or matrix_transformed()) image when
1353 performing interpolation in the presence of an alpha channel.
1354 Also corrected the centring of the rotated image on the output
1357 Imager 0.60 - 30 August 2007
1360 - Finished/rewrote Arnar's old SGI RGB file format support, so Imager
1361 now has full SGI RGB image format, including RLE and 16-bit/sample
1363 https://rt.cpan.org/Ticket/Display.html?id=8666
1365 - logging functions are now available in the API
1367 - applied Gabriel Vasseur's patch
1368 added documentation, further tests, and support for greyscale images
1369 Obviously problems are my fault :)
1370 https://rt.cpan.org/Ticket/Display.html?id=28142
1372 - the mask for ICO/CUR images is now applied as an alpha channel to
1373 the returned image. For the old behaviour, supply ico_masked => 0
1374 to read() or read_multi(). This should be less confusing when
1375 using Imager as a general image processor.
1376 https://rt.cpan.org/Ticket/Display.html?id=29001
1380 - in some cases it's possible for giflib/libungif to return color
1381 indexes outside the range of colors defined by the image's palette.
1382 We now expand the palette to match the indexes used.
1383 Thanks to Gabriel Vasseur for reporting this.
1385 - fixed various memory leaks that could occur when failing to read png,
1386 jpeg, bmp or tga files.
1388 - to avoid confusion, channels not present in the image are returned as
1389 zero by getscanline(). This has no effect on the C level i_glin()
1390 and i_glinf() API functions which continue to not set the unused
1393 - the convert() method now returns an image of the same sample size as
1395 https://rt.cpan.org/Ticket/Display.html?id=28492
1397 - remove repeated text in Imager::Files
1398 http://rt.cpan.org/Ticket/Display.html?id=27589
1400 - be even more explicit that scale() and friends don't modify the source
1401 image, but return a new image.
1402 http://rt.cpan.org/Ticket/Display.html?id=28570
1404 - improve the error message from errstr() when you try to load a font
1405 for which the driver hasn't been built in Imager.
1406 http://rt.cpan.org/Ticket/Display.html?id=27571
1408 - transparency is now enabled by default when writing GIF images
1409 http://rt.cpan.org/Ticket/Display.html?id=27615
1411 - Imager would not load on Windows 98
1412 http://rt.cpan.org/Ticket/Display.html?id=27653
1414 Imager 0.59 - 14 June 2007
1419 - fixes a regression introduced by the fixes for RT 11972
1420 http://rt.cpan.org/Ticket/Display.html?id=27546
1422 - cropping outside the image would return an Imager object with
1423 no low-level image object, instead of returning false.
1424 Fixed by: Philip Gwyn (Leolo)
1425 http://rt.cpan.org/Ticket/Display.html?id=27509
1427 Imager 0.58 - 16 May 2007
1430 No significant changes from 0.57_01.
1432 Imager 0.57_01 - 11 May 2007
1435 - added to_rgb16 to produce a 16-bit/sample version of an image
1437 - improve freetype 1.x text output efficiency
1441 - search another place for rgb.txt, and check all the places
1442 Imager::Color checks when deciding whether to skip testing it
1443 http://rt.cpan.org/Ticket/Display.html?id=26064
1445 - use a convolution kernel size based on the stddev rather than a
1446 fixed size when performing a gaussian blur
1447 http://rt.cpan.org/Ticket/Display.html?id=25645
1449 - document the difference() method's mindist parameter, and debug it.
1451 - put the Imager release number in the Inline::C generated code to
1452 regenerate Inline code when a new release of Imager is installed.
1453 http://rt.cpan.org/Ticket/Display.html?id=26278
1455 - fix rendering on alpha channel images for the FreeType 1.x driver.
1456 http://rt.cpan.org/Ticket/Display.html?id=11972
1458 - fix rendering on alpha channel images for the T1lib driver.
1459 http://rt.cpan.org/Ticket/Display.html?id=11972
1461 - reworked library probing, we can now set more than one probe
1462 function for a library. Disabled the default (non-freetype-config)
1463 library probe and added an extra probe function that searches for
1464 both ft2build.h and whatever it includes, and adds -I as needed.
1465 Hopefully this will fix build problems like
1466 http://www.nntp.perl.org/group/perl.cpan.testers/2007/05/msg472281.html
1467 http://rt.cpan.org/Ticket/Display.html?id=26086
1469 Imager 0.57 - 30 Apr 2007
1472 This is a maintenence release fixing a security issue in Imager.
1474 - CRITICAL: a specially crafted compressed BMP file can cause a buffer
1475 overflow in malloced memory. There will be further discussion of
1476 this issue in the ticket below.
1477 http://rt.cpan.org/Ticket/Display.html?id=26811
1478 CVE-2007-2459 CVE-2007-2413
1479 The descriptions at cve.mitre.org varied in quality, please see the
1480 ticket at rt.cpan.org for a more accurate description of the issue.
1482 Imager 0.56 - 1 Apr 2007
1485 - added support for reading 16-bit/sample PGM/PPM images
1487 - added support for writing 16-bit/sample PGM/PPM images
1489 - improved performance of reading PBM/PGM/PPM images
1491 - added support for writing PBM images if the image is paletted and
1492 contains only black and white
1494 - added a new make_colors value - "mono"
1496 - switched from the svn log Changes to a manual Changes to reduce
1499 - new sample code - samples/flasher.pl
1503 - CRITICAL: the "Imager" typemap entry (not used by Imager itself)
1504 was returning an image object with an extra reference, this
1505 resulted in a memory leak.
1506 http://rt.cpan.org/Ticket/Display.html?id=24992
1508 - fix rendering on alpha channel images for the FreeType 2.x driver
1509 http://rt.cpan.org/Ticket/Display.html?id=11972
1511 - reading bmp files now consitently handles short reads. You can now
1512 supply a parameter to treat a short read as successful and set
1514 http://rt.cpan.org/Ticket/Display.html?id=8426
1516 - previously, reading ASCII PBM files required spaces between samples,
1517 even though the format doesn't require that
1519 - improved documentation of the unsharpmask filter (I hope)
1520 http://rt.cpan.org/Ticket/Display.html?id=25531
1522 - force flushing of the output from i_tt_dump_names() and test output
1523 in t/t35ttfont.t to prevent output from being mixed up.
1524 https://rt.cpan.org/Ticket/Display.html?id=24859
1526 - rewrite a conditional expression as an if() to hopefully work around
1527 a bug in the pre-4.0 GCC Apple shipped with OS X 10.4.
1528 https://rt.cpan.org/Ticket/Display.html?id=25561
1530 - avoid Data::Dumper in regops.perl to support older releases of perl
1531 https://rt.cpan.org/Ticket/Display.html?id=24391
1533 Imager 0.55 - 16 Dec 2006
1536 This is primarily a bug fix release.
1538 Note: Test::More is now a pre-requisite for Imager and is no longer bundled.
1540 There is one new feature:
1542 - the Win32 font driver now supports UTF8 (RT 22166)
1543 http://www.cpanforum.com/threads/3276
1544 http://rt.cpan.org/Ticket/Display.html?id=22166
1546 Several bugs were fixed:
1548 - the string() method would not output the string "0"
1549 http://rt.cpan.org/Public/Bug/Display.html?id=21770
1551 - fills.c was failing to compile on Solaris 10 (compiler unknown)
1552 http://rt.cpan.org/Public/Bug/Display.html?id=21944
1554 - the gif_disposal and gif_user_input tags weren't being read from
1556 http://rt.cpan.org/Public/Bug/Display.html?id=22192
1558 - gif.c was failing to build under MSVC
1559 http://rt.cpan.org/Ticket/Display.html?id=23922
1561 - in some cases strings passed to the string() method were treated as
1562 terminated by NUL (chr 0)
1563 http://rt.cpan.org/Public/Bug/Display.html?id=21770
1565 - on "MSWin32" perl builds we now link to -lzlib instead of -lz since
1566 that's the default build name for zlib on Win32.
1567 http://rt.cpan.org/Ticket/Display.html?id=23064
1569 - search $Config{incpath} for headers too, which we should have been
1572 Win32 font driver fixes:
1574 - the global descent value from bounding box was the wrong sign
1575 http://www.cpanforum.com/threads/3276
1577 - if the first or last glyph overflowed the left or right side of the
1578 advance width they would be clipped
1581 Imager 0.54 - 14 Sep 2006
1584 This is primarily a feature release:
1586 - a new qtype value 'mixing' has been added to the scale()
1587 method. This is faster than 'normal', slower than 'preview'. This
1588 is based on the method used by pnmscale, and seems to produce less
1589 blurry results than normal.
1590 http://rt.cpan.org/Public/Bug/Display.html?id=20677
1592 - the rubthrough() method can now render onto images with an alpha
1594 http://rt.cpan.org/Ticket/Display.html?id=20678
1596 - the read_multi() method now falls back to calling doing a single
1597 image read via the read() method and write_multi() will now fall
1598 back to calling write() if a single image is supplied. This means
1599 you can simply call the read_multi() or write_multi() functions
1600 without having to check if the type is formatted by that method.
1601 http://rt.cpan.org/Ticket/Display.html?id=19457
1602 http://rt.cpan.org/Ticket/Display.html?id=19458
1604 - the GIF loop extension can now be written. If you don't have
1605 libungif/giflib 4.1.4 (or some distribution's bugfixed equivalent) you
1607 http://rt.cpan.org/Ticket/Display.html?id=21185
1609 - getscanline() and setscanline() can now read/write palette index
1610 based data from/to the image for paletted images, by setting type to
1612 http://rt.cpan.org/Ticket/Display.html?id=20338
1614 - we no longer hassle you to disable GIF support
1615 http://rt.cpan.org/Ticket/Display.html?id=20687
1617 - minor documentation fixes
1620 Imager 0.53 - 26 Jul 2006
1623 This is a bugfix release.
1625 Some test code was left in a code path not covered by the test
1626 suite. A test was added to cover this code path and the test code was
1628 http://rt.cpan.org/Public/Bug/Display.html?id=20705
1631 Imager 0.52 - 25 Jul 2006
1634 This is primarily a feature release, but contains a fair few bug
1635 fixes, new features:
1637 - ability to read and write MS Windows ICO and CUR files
1639 - you can now add file format plugins to support new file formats
1641 - add POD coverage tests
1643 - setcolors() and addcolors() now accept color names and so on
1644 instead of requiring Imager::Color objects.
1645 http://rt.cpan.org/Ticket/Display.html?id=20056
1647 - flood_fill() can now fill to a specified border color instead of
1648 just to the area the same color as the seed.
1649 http://rt.cpan.org/Ticket/Display.html?id=19618
1654 - bounding_box for the T1 driver wasn't converting UTF8 to ascii when
1655 calculating the advance width.
1656 http://rt.cpan.org/Public/Bug/Display.html?id=20554
1658 - bounding_box for the T1 driver wasn't including leading and
1659 trailing spaces in the bounding box as the other drivers did, it also
1660 produced strange results for empty strings or strings containing only
1663 - when reading CMYK jpeg images they were being transferred to the
1664 image object as is, producing a four channel image. It only looked ok
1665 due to an old still unfixed Photoshop bug. We now convert from the
1666 inverted CMYK that photoshop (and Corel for example) produce into RGB.
1667 http://rt.cpan.org/Ticket/Display.html?id=20416
1669 - reading a CYMK TIFF would result in a 4 channel image, reading any
1670 image with more than 4 channels (eg. RGB with 2 alpha channels) would
1672 http://rt.cpan.org/Ticket/Display.html?id=20415
1674 - added /usr/local/include to the default include search path, since
1675 we were already searching /usr/local/lib for libraries.
1677 And various minor fixes and documentation updates.
1680 Imager 0.51 - 23 Apr 2006
1683 - fix a validation bug when processing JPEG EXIF data that can cause
1685 http://rt.cpan.org/Public/Bug/Display.html?id=18496
1687 - fix mis-processing of the src_maxx and src_maxy parameters of the
1689 http://rt.cpan.org/Public/Bug/Display.html?id=18712
1691 - fix a problem in Imager's "smart" handling of the color parameter
1693 http://rt.cpan.org/Public/Bug/Display.html?id=18561
1696 Imager 0.50 - 29 Mar 2006
1699 - CRITICAL: fixes a segmentation fault from attempting to write a 2
1700 or 4 channel image to jpeg or a 2 channel image to tga where the
1701 output is an in-memeory buffer.
1702 http://rt.cpan.org/Public/Bug/Display.html?id=18397
1704 - fixes an incorrect pointer parameter in the PNG code
1705 http://rt.cpan.org/Public/Bug/Display.html?id=18051
1707 - skip Inline::C tests when building in a directory with spaces
1708 http://rt.cpan.org/Public/Bug/Display.html?id=18049