-
-~~~~~~~~~~~~~^ ^ ^~~~~~~~~~~~~~
-
-
-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?
-
- - other internal image representations (design/represent.txt)
-
- Good stuff:
- - image colour transformations based on input images, see
- design/cmyktorgb.txt for Addi's description
- - eventually support tiff's madness
-
- 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
- - Add mycalloc() and myrealloc() to the malloc() wrappers.
-
- - should i_readgif returned colormap be an arrayref of
- Imager::Color objects? Note that this will break
- compatibility with previous releases.
-
- - should Imager::Font be split into a base class whose
- new chooses a base class (ttf, t1 or win32?) to
- instantiate. Currently Imager::Font uses if() statements to
- select between each type of font. It should.
-
- - should we overload <=> or cmp for Imager::Color objects?
- too many worms, leave it out
-
- - if gif_delays is a number instead of an arrayref, use that
- number for each frame
-
- - provide patches for libgif and libungif that fix their bugs
- and give a useful extension interface. Probe for the
- installation of the patches in Makefile.PL to let gif.c
- know what features it can use.
-
- 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 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
+
+=================================================================