X-Git-Url: http://git.imager.perl.org/imager.git/blobdiff_plain/9f56d386d8635812b81076e6788c4b2d76102e8d..26fd367b48b47803a560b13aeb30d58a2d75dead:/Changes diff --git a/Changes b/Changes index 60a21262..88877502 100644 --- a/Changes +++ b/Changes @@ -403,72 +403,267 @@ Revision history for Perl extension Imager. - 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 - -~~~~~~~~~~~~~^ ^ ^~~~~~~~~~~~~~ - - -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? - - Good stuff: - - matrix based colour transformations, for RGB to grayscale - and simple linear other conversions, see design/colmatrix.txt - - 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 - - - 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 - - - support writing pgm files - - 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? - -=================================================== + 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. + - 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 + +================================================================= For latest versions check the Imager-devel pages: http://www.eecs.umich.edu/~addi/perl/Imager/devel/ -=================================================== +=================================================================