- Win32 support for jpeg
- Win32 support for tiff
- base level error reporting code added, I still need to modify
- older code to use it
+ older code to use it
- fix translate=>'giflib' handling of single-colour images.
Previously a single colour image would cause an error in
MakeMapObject().
- 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
+ - 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
-
-~~~~~~~~~~~~~^ ^ ^~~~~~~~~~~~~~
-
-
-0.40 TODO list
- iolayer:
- - Add scalar/mmap to iolayer
- - Add close() code to iolayer
- - Merge callback interface into iolayer
- - Add interface for writing to all formats but tiff
- - Add interface for reading for png (started),
- gif (merge with cb patch), ppm and raw
- - Add make new tests once all formats support io_layer
- - Implment the maxread threshold (Indicates how far
- a library can read before it indicates that it's done).
-
- MultiImage & metadata support:
- - Figure what interface should be between C and perl?
- - How to store data in the C interface for tags/metadata?
-
- Old sins:
- - Make sure everything is doable with the OO interface
- - Split the other classes into seperate files
- - Compile with memory debugging enabled and fix leaks
- - dynaload.c is strongly tied to perl
-
- - should i_readgif returned colormap be an arrayref of
- Imager::Color objects?
-
- Documentation:
- - Add to the documentation
- - Write a tutorial?
- - Write a guide to installing the helper libraries
- - Go through the entire project and add comments in pod
- so doco.perl can be used to read them.
-
- - should the interlace option for reading raw images have
- symbolic names in the OO interface?
-
-===================================================
+ - 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
+
+0.39 pre1
+ - split Imager::Font into a base, *::Type1 and *::Truetype
+ - writing faxable tiff now allows 2 and 4 channel images
+ - virtual image interface - 8-bit/sample images
+ - paletted images
+ - 16-bit/sample images
+ - masked images
+ - writing non-8bit images to raw
+ - writing '' '' to tiff
+ - i_convert support for high-bit images and paletted images
+ - i_copy for high-bit and paletted images
+ - tests for rubthru
+ - rubthru can now rub a 2 channel image over a 1 or 3 channel
+ image
+ - rubthru for high-bit images
+ - i_readgif_multi functions, which return all the frames from a
+ GIF file, along with a bunch of meta-information as tag
+ - OO interface to tags
+ - OO interface read_multi() to read multi-image files (just GIF
+ so far)
+ - documentation for the multi-image GIF reading and tags
+ - rotate() method with rotate by steps of 90 degrees (and docs)
+ - fixed a bug in i_img_pal_new_low()
+ - added gaussian to the filters list
+ - documented the individual filters
+ - fixed the right-hand side of bounding boxes for TT fonts
+ where the last character overlaps the advance width (eg.
+ italic fonts)
+ - added rotation by exact amounts in degrees or radians,
+ implemented using the matrix idea from Addi. The procedural
+ matrix transformer is exposed, but still needs testing (as XS)
+ and needs an OO interface, hopefully with some helper tools,
+ like the preset interface with ->convert().
+ - MY::postamble() in Makefile.PL included a broken rule
+ (Makefile.PL 1.13.2.5)
+ - support for GDI fonts under Win32
+ - made that work for cygwin too (needs the w32api package)
+ - freetype1 support under Win32
+ - t1lib support under Win32
+ - fixed a minor bug in font.c (invalid font files caused a SEGV)
+ - checked cygwin for both t1lib and freetype1
+ - freetype 2 support
+ - exposed the matrix_transform() function to the OO interface
+ - added Imager::Matrix2d convenience class
+ - support for setting the resolution when writing to PNG
+ - retrieve physical resolution to tags when reading from PNG
+ - found an XS bug in the interface to i_tags_add()
+ - fixed handling of writing text to a channel with freetype2
+ (sometimes the edge of a character would damage the edge of the
+ previous character)
+ - some utf8 support for freetype2
+ - some vertical layout support for freetype2
+ - named parameters for specifying colors, with quite a few options.
+ - glyph size issues for freetyp2
+ - minor problem in handling of canon option
+ - low-level bmp writing (moving it to laptop)
+ - Windows BMP reading and writing
+ - added OO interfaces for the mosaic, bumpmap, postlevels and
+ watermark filters
+ - added t/t61filters.t to test the filters
+ - fixed some problems in jpeg handling from the exp_represent merge
+ - fixed buffer flushing for wiol jpeg code
+ - added some tests that will hopefully catch it in the future
+ - added the OO interfaces to the mosaic, bumpmap, postlevels and
+ watermark filters, and documented them
+ - fixed a sample size conversion problem in i_gpixf_d() etc.
+ - added simple color representation conversion functions (used
+ in i_fountain().)
+ - added the fountain filter:
+ - creates gradients similar to paint software
+ - 90% support for GIMP gradient files
+ - OO interface and documentation
+ - Imager::Fountain for building/loading fill definitions
+ - named value translation for filters
+ - added a generic fill mechanism
+ - created versions of i_box() and i_arc() that can fill using
+ generic fills
+ - solid generic fills (with alpha blending if asked for)
+ - hatched generic fills (with some options)
+ - fountain generic fills
+ - sample code to generate an examples page
+ - improved the scale* hatches a bit
+ - add the flood_fill() method (using the existing i_flood_fill)
+ - implement i_flood_cfill() based on i_flood_fill, and
+ add general fills to the flood_fill() method
+ - generalize the combine parameter to get different ways of
+ combining the fill with the target
+ - the tt driver (freetype 1) didn't handle the first character
+ hanging off the left of the character cell
+ - the tt driver produces some artifacts when characters
+ overlapped
+ - error handling for writing jpeg images
+ - writing paletted images to GIF now uses the image palette
+ if it's small enough
+ - $img->arc() now calls i_circle_aa() if a complete circle is
+ being drawn in a plain color
+ - image based fills
+ - unsharp mask
+ - make i_conv() clamp the bottom end of the samples range too
+ (makes it useful for sharpening)
+ - adjust ascender/descender values for FT1.x to avoid losing
+ descenders (specifically the bottom of "g" in ImUgly.ttf or
+ arial.ttf at 14pixels)
+ - added tga.c to read targa images
+ - added i_bumpmap_complex to do more accurate bumpmapping
+ - added an image type with doubles as samples
+ - change i_copy() and i_sametype() to handle double/sample images
+ - added basic POD to trans2.c
+ - transform2 now uses the error interface
+ - myrealloc() is implemented for malloc debug mode
+ - now buffer chains are freed when destructor for Imager::IO
+ is called
+ - adjusted the Lanczos window width for the scaling code and
+ added code to normalize the filter generated to preserve
+ intensity scaling.
+ - constant edge extension for scaling operations
+ - better error checking of automatic fill conversions
+ - fix some range checking for the fountain fill segment type
+
+0.39 pre2
+ - A few scattered mymalloc/free fixes
+ - io_buffer implemented as a source for io layer and
+ XS and perl OO code added.
+ - Test for iolayer t/t07iolayer.t implemented.
+ - Fixed known memory leaks.
+ - gif screen was wasn't being calculated correctly
+
+0.39 Released: Nov 2 2001.
+
+0.40 pre1
+ - anti-aliased polygon fill
+ - add general fill to polygon fill
+ - make color values smarter for the drawing functions
+ - implemented reading and writing the TIFF text tags
+ - added prototypes for some of the derivative tags functions
+ - read paletted tiff images into Imager paletted images
+ - on partial tiff image reads, set the i_incomplete tag
+ - tiff reading now uses the error stack
+ - use the error stack value from reading bmp files
+ - fix an error message in bmp.c
+ - added has_chars() method to Imager::Font::FreeType2
+ - freetype 2 bounding box function didn't know UTF8 (doh!)
+ - write paletted images as paletted to tiff
+ - initialize counter for packing 4 bit data
+ - don't allocate hashboxes as locals since it overflows the
+ stack by default in Darwin
+ - applied T1 afm patch from Claes Jacobsson
+ - split IM_INCPATH and IM_LIBPATH with $Config{path_sep}, so they
+ work on Windows
+ - Added memory pools for easy cleanup of temp buffers
+ - Added read support for sgi .rgb files.
+ - io_new_fd() now creates a FDSEEK io object
+ - implemented i_readgif_wiol()
+ - Imager->read() now uses i_readgif_wiol();
+ - extend callback iolayers at C and Perl levels
+ - implemented i_writegif_wiol()
+ - split out Perl iolayer initialization into private methods
+ - add tests for each type of iolayer in t50basicoo.t
+ - read/write multi-image tiff files
+ - tests in t50basicoo.t for multi-image/file
+ - ASCII PBM files were reading white as dark gray (255 vs 1)
+ - modify the Freetype2 font code to pick it's own encoding
+ rather than using whatever strange translation FT2 happens to
+ pick
+ - modify the FT1 font code to use the first encoding as a default
+ if we don't find a unicode encoding
+ - use the glyph bbox to calculate the glyph bitmaps for rendering
+ with FT1 rather than the global ascender/descender. This helps
+ with fonts that have broken metrics.
+ - fix calculation of descender for FT2, it was calculating the
+ minimum decent rather than the maximum for the characters in
+ the string
+ - didn't set default for bounding_box() utf8 parameter (caused a
+ warning when calling bounding_box() on a FT2 font with no utf8
+ parameter)
+ - Added lib/Imager/Draw.pod documentation of primitives.
+ - Added lib/Imager/Transformations.pod, some docs of simple transforms.
+
+=================================================================
For latest versions check the Imager-devel pages:
http://www.eecs.umich.edu/~addi/perl/Imager/devel/
-===================================================
+=================================================================