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/
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