| Imager 0.85
The main changes in the release versus 0.84 are:
- on 64-bit systems, 64-bit types are consistently used for image dimensions and co-ordinated, and for memory block sizes.
- handle IFD loops in TIFF files correctly. Previously this would lead to an infinite loop.
- fix the link in the getheight() entry in the method index
Development release, this will become 0.85 if CPAN testers is
- the image file limits set by set_file_limits() weren't being checked when reading TIFF files. RT #69915
- Provide more information about file format module load errors on a failed image file read() or write(). RT #59194
- use TIFFReadDirectory() instead of TIFFSetDirectory() to iterate through TIFF images, since it checks for IFD loops. RT #69914
- don't leak memory when out of range palette indexes are supplied to setscanline(). RT #69242
- require a later version of CPAN::Meta to ensure JSON::PP and CPAN::Meta::YAML are available. RT #69008
- hoist the per-line calculations for the flines implementations, and modernize the tests a bit. RT #70126
- detect snprintf()/vsnprintf() (cheat by using Config.pm) and use them when available. RT #69147
- if t1lib failed to reinitialize it would be left as marked initialized. RT #69877
- update the bundled (and still modified) Devel::CheckLib RT #69170
Development release as a sanity check for the types re-work.
Massive types re-work:
- the type used internally for pixel co-ordinates and image sizes is now 64-bit on 64-bit platforms (at least sane ones).
- size_t is now used consistently for memory block sizes.
- since this changes the binary interface, the Imager API version has been incremented. Any module that uses the API will need to be rebuilt. In most cases that will be enough, but calls to any APIs that take a pointer to image sizes may need source changes.
- you should be able to create very large images on 64-bit systems, if you have enough memory. Successfully created a 32768 x 49192 x 3 channel image, filled with a tiled image and scaled it. The unscaled image was also successfully saved to a JPEG.
- check the image size before attempting to write BMP, GIF, JPEG, PNG, SGI, TGA, TIFF images.
- correctly handle reading TGA images over 32767 pixels wide or tall.
- the gif_left and gif_top tags are now clamped to non-negative values when writing a GIF image.
- removed dead callback read/write code
The default maximum memory size when reading files is now 1G.