Changes for version 0.44_01

  • the plugins Makefile has long produced an error after all tests were complete on Win32, finally tracked down why
  • Makefile.PL now checks the directories specified by $Config{locincpth} and $Config{loclibpth} for includes and libraries respectively. Resolves: https://rt.cpan.org/Ticket/Display.html?id=2942
  • we were undefing the wrong macro (used as an include guard) when building the error code translation function for freetype 2. This meant most errors came out as numbers.
  • add a note to the README on how to get font suitcases and dfont files working on OS X.
  • add dfont to the list of extensions supported by ft2
  • document Imager::Font->new()'s index parameter
  • added concept index to Imager.pm's POD
  • the gradgen filter now does the same color value conversion that Imager's drawing functions do.
  • added trivial multiple master support via the FT2 driver
  • added .pcf and .pcf.gz to the list of extensions supported by ft2
  • the tiff reader now puts warning messages produced during reading into the i_warning tag. Resolves: https://rt.cpan.org/Ticket/Display.html?id=8722
  • the i_xres and i_yres tags are now stored in a resolution similar to their source. Resolves: https://rt.cpan.org/Ticket/Display.html?id=8520
  • added tiff_resolutionunit_name tag when reading tiff files
  • Makefile.PL now attempts to use freetype-config to configure freetype 2 and pkg-config to configure libpng.
  • avoid complaining about include/lib directories we pull from perl's config or we have built-in
  • Makefile.PL now builds imconfig.h with #defines for libraries present (and for the GIF library version) rather than putting them into CFLAGS
  • scanning for required include files is now down by directory rather than by file, using -e to check for the existence for a file rather than doing an eq against every filename in the directory.
  • previously we only checked a candidate include directory for freetype.h to consider it a valid FT1.x include directory. We now check if it contains fterrors.h too, if it does, then it's from a FT2 installation and we ignore it.
  • Makefile.PL now accepts command-line options to set include and library directories and to enable/disable drivers.
  • added simple examples to most of the filters documented in Imager::Filters
  • explicitly document there are no PNG specific tags.
  • more examples in Imager::Draw
  • minor cleanup of Imager::Fill
  • eliminate unused variables and static functions
  • simplify some XS code by adding another typemap entry
  • the right-side bearing used to adjust the final width wasn't being calculated correctly, this would cause the bounding_box() function for freetype 2.x to return a larger than expected text width. http://rt.cpan.org/NoAuth/Bug.html?id=11291
  • add scaleX/scaleY to the method index and gives them some examples http://rt.cpan.org/NoAuth/Bug.html?id=11328
  • call read() instead of open() in the example code in Imager.pm, and mention that open() is an alias for read(). http://rt.cpan.org/NoAuth/Bug.html?id=11431
  • added reference list of crop() parameters. http://rt.cpan.org/NoAuth/Bug.html?id=11430
  • reading a tga image with an idstring of 128 or more bytes would result in an allocation error, if the platform char type was signed
  • tests now check that tga tags are set
  • calling the read() method for a format not included in the Imager build, for example, JPEG with no libjpeg installed, would crash with an undefined function error (modified by DynaLoaders dependence on AutoLoader.) http://rt.cpan.org/NoAuth/Bug.html?id=9618
  • some test scripts have been modified to use Test::More, which is now included under the t directory. Eventually all will be modified to use Test::More and the duplicates in t/testtools.pl will be removed
  • the convert, crop, rotate, copy, matrix_transform, to_paletted, to_rgb8, scaleX and scaleY methods now warn when called in void context. http://rt.cpan.org/NoAuth/Bug.html?id=9672
  • correct email addresses in the README file, and include bug reporting information there too
  • added README for samples directory, describes interleave.pl and anaglyph.pl to start.
  • the XS for the internal i_glin() function wasn't copying the pixel values across to the returned color objects. http://rt.cpan.org/NoAuth/Bug.html?id=11860
  • Imager::Cookbook wasn't included in the MANIFEST
  • added samp-form.cgi and samp-image.cgi to the samples directory to demonstrate displaying a generated image on a HTML page.
  • Makefile.PL now adds rules to generate a suitable META.yml to the generated Makefile.
  • added sample code for handling images uploaded via a HTML form.
  • saving a GIMP gradiant file with Imager::Fountain->save has always been broken. Fixed it and added tests.
  • newer versions of GIMP add a line to gradient files before the segment count giving a descriptive name of the gradient. Imager::Fountain can now read and write such gradient files. The interface is a bit indirect, but I'd like to preserve Imager::Fountain as a blessed array ref for now.
  • the segments parameter supplied to the fountain filter and the fountain fill contructor now accepts color names or other descriptions as other functions do.
  • fix a few compiler warnings
  • document the Imager::Font::BBox advance_width() method
  • Imager::Font::BBox advance_width() method was falling back to the wrong value when the font driver's low level function didn't return the advance width.
  • the FT 1.x was comparing versus an uninitialized variable when checking the end of string when calculating the right side bearing used to adjust pos_width for glyphs that overlap the right side of the advance width.
  • Imager::Font::BBox objects now have right_bearing() and display_width() methods. Hopefully this and the advance_width() method fills out the Imager bounding box interface to a useful state. Implemented for all four font drivers.
  • Win32 font bounding_box() method now supports the advance width and right bearing values.
  • Imager::Matrix2d->rotate() would only rotate around the supplied centre point if both 'x' and 'y' were non-zero.
  • the internal i_tags_get_string() function now acts correctly for integer only tags.
  • the FT1.x driver now supports the align parameter correctly. Tests were added to each driver to check correct handling of the align parameter.
  • the Win32 font driver bounding_box() method now puts accurate values in the ascent and descent values, previously they were set to the font ascent/descent rather than the values specific to the string.
  • supplying align=>0 to the win32 font driver string() function now aligns in the same way as the other drivers.
  • removed the bug reporting email address to prevent spammers stripping it. The URL is still there and if someone knows how rt.cpan.org works they can still figure out the email.
  • the internal function used to probe file formats if the type parameter wasn't passed to the read() method would produce diagnostics on stdout, precluding use in web applications. Silenced it.
  • the setcolors() had a fencepost error making it impossible to use it to set the last color in the palette. http://rt.cpan.org/NoAuth/Bug.html?id=12676
  • fix the filter examples in Imager::Filter so they don't indicate that a new image is returned (the filter() method works in-place)
  • add examples for the fountain filter
  • prevent warnings from Makefile.PL when there's no libraries found
  • Imager no longer assumes that MSVC is the only native Win32 compiler, MinGW can be used to build Imager.
  • fixed an inverted condition checking the giflib version, and replaced a manual test skip in t/t105gif.t
  • add tests to exercise hatch fills for floating images. This code is mis-generated with the gcc 4.0 that ships with OS X 10.4
  • work around junk that pkg-config sends to stderr on FreeBSD 4.10
  • testimg/base.jpg was missing from the MANIFEST, causing test failures
  • use a temp file to avoid messing with echo on Win32 when building META.yml
  • add some Mac OS X notes to the README
    • For latest versions check the Imager-devel pages: http://imager.perl.org/

Documentation

Draw primitives to images
Programmable transformation operations
working with image files
Entire Image Filtering Operations
Internal image representation information
Simple transformations of one image into another.
decribes the virtual image interface
documents the register virtual machine used by Imager::transform2().

Modules

Perl extension for Generating 24 bit Images
Color handling for Imager.
Rough floating point sample colour handling
built-in Imager color table
recipes working with Imager
implements expression parsing and compilation for the expression evaluation engine used by Imager::transform2()
an assembler for producing code for the Imager register machine
general fill types
Font handling for Imager.
objects representing the bounding box of a string.
low-level functions for FreeType2 text output
low-level functions for Truetype fonts
low-level functions for Type1 fonts
uses Win32 GDI services for text output
simple wrapped text output
a class for building fountain fills suitable for use by the fountain filter.
simple wrapper for matrix construction
generated information about the register based VM
a library of register machine image transformations

Provides

in lib/Imager/Expr.pm
in lib/Imager/Expr.pm
in lib/Imager/Font/Image.pm