- 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
+ - 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 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 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.
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.
+ - Added lib/Imager/ImageTypes.pod, draft of ImageType pod.
+ - Added lib/Imager/Filters.pod, draft of Filters pod.
+ - Added lib/Imager/Engines.pod, draft of Engines pod.
+ - added getpixel() and setpixel() methods
+ - added Artur's OSX dlload() emulation, with minor changes
+ - modified _color() to work around a 5.6.0 bug
+ - replaced old gif options with tags
+ - we now log which memory block is being freed before giving
+ an error on it being re-freed
+ - fixed stupid bug in deleting tags
+ - fixed minor pod errors involving >
+
+0.40pre2
+ - make t1log optional, defaulting to off. You can enable the log
+ with Imager::init(t1log=>1) (Ticket #369)
+ - quote a few hash key strings to prevent warnings on 5.004
+ - modify quantization code to handle 1 channel images
+ correctly (Ticket #365)
+ - make channel pointer to i_gsamp() const int * so we can pass
+ const arrays
+ - handle the presence of the default broken giflib better,
+ by giving them some more prose about the problem, and skipping
+ all but the first test that fails with the broken giflib
+ - i_box_cfill() went into an infinite loop on fountain fills
+ or fills on images with more than 8-bits/sample
+ - hide more of our Darwin dlload emulation to prevent runtime
+ symbol conflicts
+ - use INT2PTR() and PTR2IV() macros instead of direct casts to
+ prevent pointer vs int size warnings on 64-bit builds of perl.
+ - add our own INT2PTR and PTR2IV definitions when perl doesn't
+ supply them
+ - difference() method
+ - hide (with static) or rename many symbols that could possibly
+ cause conflicts with other libraries or perl
+ - Fix runaway cache problem for freetype1 font cache.
+ - Added version logging when log is started.
+
+0.40
+ - difference() wasn't setting an alpha channel when the input
+ image didn't have one
+ - improve crop() documentation, see
+ http://perlmonks.org/index.pl?lastnode_id=155767&node_id=155428
+ - handle the first "buggy giflib" test more portably. Previously
+ it used fork() which caused problems on systems that didn't have
+ a real fork().
+
+0.41
+ - skip() in testtools should be skipn() and it should use the
+ loop variable for the test number
+
+0.42pre1
+ - quote the 'min' parameter to scale in Imager::Transformations
+ and at least mention it in the docs beyond the examples
+ - document the values for the read() and write() method type
+ parameter
+ - support UTF8 text with Freetype 1.x
+ - second parameter to SvPV() must be of type STRLEN
+ - Doc pathces from cogent.
+ - Fixed out of bounds access on bitmap for flood fills.
+ - some char * vs unsigned char * casts missing on OSF1 v4.0
+ - some enums had , on the last item in datatypes.h, which OSF1
+ didn't like
+ - Compaq C 6.4 (OSF1) claims to be C99 but doesn't provide
+ stdint.h, don't try to use it under OSF
+ - fix missing initialization in tags.c
+ - Change i_draw to i_line and have it use Bresenham's line
+ drawing algorithm.
+ - support has_chars() method for Freetype 1.x
+ - fixed log message for i_ft2_has_chars()
+ - fixed some broken checking for UTF8 in FT2 code
+ - handle UTF8 strings passed to T1 low-level functions
+ - handle flags for underline, strikethrough and overline for T1
+ low-level output functions
+ - OO interfaces to UTF8 and flags, for now leaving the flags as
+ specific to Imager::Font::Type1
+ - mc_web_map was storing colors with an alpha of 0
+ - update the URLs for libpng and zlib
+ - Fixed empty string handling for tt font driver.
+ - Fixed tiff handling of images all contained in a
+ single strip (rowsperstrip = -1) and added a hack
+ for images missing the rowsperstrip tag.
+ - Fixed default parameters for crop()
+ - Added Preliminary specialized scaling code.
+ - Added image type detection.
+ - added smoke test for win32 font bounding_box() method, and
+ fixed the problem reported in ticket #1748.
+ - update t37w32font.t to use i_line() instead of i_draw()
+ - replaced non-portable call to rint() with (int)(dy+0.5) (so we
+ can build on Win32)
+ - the default tifflib warning handler was crashing on Win32
+ under ActivePerl, when an unrecognized tag was read from the
+ file. For now we'll just drop the warnings in the bit bucket.
+ (Ticket #1513)
+ - the code to read multiple tiffs didn't handle files with more
+ than five images correctly, causing a memory overrun.
+ - fix some minor test code hiccups
+ - implemented i_t1_has_chars(), tests for same
+ - added ExistenceTest.{pfb,afm,ttf} for testing $font->has_chars
+ - tests for Imager::Font::Type1::has_chars();
+ - tests for Imager::Font::Truetype::has_chars();
+ - internal and external bounding box calculations now use
+ the same hint flags as text output for Freetype 2.x
+ - made the i_foo_bbox() interface more expandable by using
+ symbolic constants for the sizes and array offsets
+ - added a / character to the ExistenceTest.foo fonts that
+ overlaps the right side of the character cell, to test the
+ advance width reporting.
+ - added advance width to the i_foo_bbox() interface, and
+ implemented it for FT2, FT1 and Type 1
+ - Imager::Font::bounding_box() now returns an Imager::Font::BBox
+ object in scalar context.
+ - implemented $font->align() text output method, for simple output
+ of aligned text
+ - created Imager::Font::Wrap::wrap_text to perform simple text
+ wrapping
+ - FT1, FT2 and T1 fonts now support the face_name method
+ - FT1, FT2 and T1 now support the glyph_names() method
+ - Debian woody supplied FT2.0.9, which didn't support
+ FT_Has_PS_Names(), so we use the FT_HAS_GLYPH_NAMES() macro
+ instead.
+ - some older FT1 don't define TT_MS_LANGID_ENGLISH_GENERAL,
+ which we use, define it if freetype doesn't.
+ - Added extra options to rubthrough() so only a subpart of
+ source image is used.
+ - the image fills didn't handle filling with source images of
+ less than four channels correctly
+ - added comment support the postfix transform2() expression
+ parser
+ - transform2() can now produce images with other than 3 channels.
+ - added a correct T_AVREF input mapping to the typemap to
+ simplify parameter lists
=================================================================