The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.38

  • Added lots of color quantization code from Tony with benchmarks.
  • Also fixes ugly stack overrun in old version. Added fixes for the lmfixed problem. Four of them, let's see which is fastest. This version adds some voronoi partitioning - it's dog slow but it's a reference implementation to check if faster algorithms are doing the right thing [tm]. Added a check for giflib 3.
  • Win32 support for libpng
  • fixed set_internal creating 2 refs to one object
  • Win32 support for jpeg
  • Win32 support for tiff
  • base level error reporting code added, I still need to modify older code to use it
  • fix translate=>'giflib' handling of single-colour images. Previously a single colour image would cause an error in MakeMapObject().
  • fix t/t10formats.t tests against giflib3
  • added test for transparent gifs
  • minor doc fixes for transparent gifs
  • make it less error-prone to write transparent gifs
  • documented the options for reading raw images
  • Changes switched to use spaces for formatting
  • switch gif.c to new error reporting with related changes to Imager.xs, Imager.pm
  • each of the image formats now have their own test file, extracted from t10formats.t, usually with som extra tests
  • Added flip() and docs to Imager.pm and i_flipxy to image.c. Added testcases too.
  • Fixed an overflow bug in png.c
  • added the colors parameter to Imager::read() which receives the arrayref of colours that i_readgif(_scalar) returns
  • fixed a problem in makemap_addi in quant.c where only the first image was compared against the palette when the palette was being refined. I screwed up on this originally (TC). This is the other half of a fix for Leolo's lmfixed problem <sigh>.
  • makemap_addi() now only puts colours into the palette that it found while optimizing the palette (so we don't get 256 colour palettes for 2 colour images :)
  • initial implementation of a row-based interface to low-level images (for performance)
  • changed Imager::read() for GIF so that the arrayref pointed to by the ref supplied in colors contains Imager::Color objects instead of more arrayrefs, keep this interface stable until we can make an informed choice about i_readgif()
  • incorporated Micksa's faxable tiff support, treating as a type of tiff rather than a separate format
  • t/t70newgif.t now checks for gif support
  • added the convert() method
  • Added support for transparent to alpha conversion during loading of png files. Note that libpng 1.0.1 is broken in handling this, we know that 1.0.5 works.
  • support for writing PGM (portable gray map) files
  • Fix for i_gifread_low() for images with only a local and no global colormap and an abort if no colormap is present (which is legal in gif).
  • several fixes to i_readgif_low()
  • Fixed crop() method so that it is consistent with documentation.
  • make clean now removes the testout directory
  • added tests for the OO interface for tiff, added an option to choose the resolution for fax tiffs, removed some unused code, fixed minor problems with Imager::write() handling of image types
  • changed README note on libgif bug to refer to t105gif.t instead of t10formats.t
  • For latest versions check the Imager-devel pages: http://www.eecs.umich.edu/~addi/perl/Imager/devel/

Changes for version 0.38

  • limited Win32 support, Imager installs and builds using VC++,
  • but there's no image/font format support yet.

Changes for version 0.38

  • Added i_gradgen code and put it into the filters hash. Think a
  • seperate pod for filters would be a good idea. Also removed some of the debugging code from the iolayer. Added pod comments to filters.c and looked over the code.

Changes for version 0.38

  • Patch from Tony that fixes infix when Parse::RecDescent is present.
  • Checked some cases where malloc/free were used instead of mymalloc/myfree. Added bufchain iolayer code. You can now write to a chain of buffers and later slurp it all into a single perl scalar. Found some oddity of t/t10 test not giving the right return value when malloc debugging was enabled. Fixed some of the logging code and the malloc debugging options. Added more tests for tiffs.

Changes for version 0.38

  • Replaced ppm.c with pnm.c which adds support for pbm/pgm/ppm
  • files ascii and binary formats. Added patches for the gif routines. Patched some of the color quantizing routines (Leolo and TonyC). There is one bomb and one warning in this test, and frankly I don't see why they are suddenly there.

Changes for version 0.38

  • Completed adding pod comments to font.c, tiff.c and iolayer.c.
  • Those along with image.c should now have every single function described in pod format.

Changes for version 0.38

  • Fixed an in consistency in the bounding box functions for t1
  • fonts. Now both versions get the 6 argument bounding_box method described in Imager::Font. Started converting the comments in font.c so that they are viewable by doco.perl. Added two examples of filters. Need to make them more usefull and then add more notes than are in compile.txt.

Changes for version 0.38

  • Fixes lots of for documentation, patch for freetype bounding
  • box handling. Split put code for Imager::Font into Font.pm and added more documentation for Font.pm. Added string local ascender and descender for tt fonts. Note that this needs to be added to t1 fonts before 0.38 final.

Changes for version 0.38

  • Fixed a braindamaged fix on the Makefile.PL file. Moved the
  • code for Imager::Color into lib/Imager/Color.pm. Wrote some pod about how it works. Made the names of Imager::Color XS routines all begin with ICL_ and used the prefix rules of XS to get nice names in perl. Found a bug (not fixed) in how XS handles returning an object to an object it had as a parameter (double free).

Documentation

documents the register virtual machine used by Imager::transform2().

Modules

Perl extension for Generating 24 bit Images
Color handling for 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
Font handling for Imager.
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