X-Git-Url: http://git.imager.perl.org/imager.git/blobdiff_plain/d5a3f4605d9bb5eafce1e50fd19ce7af2dfaf6c7..7fdbfba8aac6f6770cb85bb65e0243ec1f17cf08:/Changes diff --git a/Changes b/Changes index 623095ce..9591b7f7 100644 --- a/Changes +++ b/Changes @@ -739,14 +739,14 @@ Revision history for Perl extension Imager. - document the constants that transform2() defines - skip the right number of tests when FT2 isn't available - This version pushed to CPAN because of skip problem in FT2 test. + +0.43_01 Fri 8 Oct 2004 - only call FT_Get_Postscript_Name() on FT 2.0.6 and later - put the IM_LIBPATH and IM_INCPATH values first in the search path so the builder gets their local versions if desired rather than the system versions they might be trying to avoid - document the exp() and log() transform2() functions - document the constants normally set by transform2(). - -0.44 - refer the user to appropriate documents in the example in Imager.pm - change the list of documents in Imager.pm to move the document @@ -754,11 +754,327 @@ Revision history for Perl extension Imager. - the scale() method now produces a warning when called in void context. - font.c now only uses the defined T1Lib error codes + - update ppport.h and remove the duplicate definitions from + Imager.xs. Had to mangle ppport.h to prevent duplicate global + function definitions. + - newer versions of tifflib require that all of the function + pointers passed to TIFFClientOpen be non-NULL, the mmap() and + munmap() pointers were always NULL and the sizeproc was + sometimes NULL. + - there would be a link or load time error on m_init_log() if + Imager was built with IM_NOLOG, fixed by renamed init_log() + to m_init_log() in log.c (thanks to Takumi Yamani) + - moved some variable definitions to the right place + - the Win32 font driver bounding box function now returns the + right number of values (both thanks to Takumi Yamani) + - the Win32 font driver now uses DEFAULT_CHARSET rather than + ANSI_CHARSET are the lfCharSet value for the LOGFONT, + as suggested by Takumi Yamani. + - fontfiles/ExistenceTest.{pfb,ttf} weren't marked as + binary in the CVS repository (caused test failures if you + built from CVS on Win32) + - Makefile.PL should now handle INCLUDE or LIB with spaces in them + correctly on Win32. + - the pnm reader read maxval for ppm/pgm files and then ignored it, + it's now validated (0 < maxval < 65536) and used to scale + samples. Note that binary ppm/pgm files (P6/P5) with maxval > + 255 result in an error, since I didn't want to add new features + just yet, just get the code that's there working correctly. + Thanks to Elthek on rhizo for reporting this and help in + tracking it down. + Resolves https://rt.cpan.org/Ticket/Display.html?id=7465 + - added a bunch of tests for reading pnm files. + - previously, if you supplied to_paletted and empty color map + and set make_colors to 'none', quant_translate() would segfault. + This was because it was making the reasonable assumption that + you'd have colors to map to. quant_translate() now checks there + is at least one color and return NULL if there isn't. + - i_img_to_pal() now does error checking of the value returned by + quant_translate(). + - Imager::to_paletted() now checks for success/failure of + i_img_to_pal() correctly and does appropriate error handling. + - i_writegif_low() did no error checking on the result of + quant_translate(), it now does + - we now test that trying to write a GIF image with no palette + allowable by the quant options is a failure. + - Imager::write() was doing nothing with the result of the call + to i_writegif_gen(), in particular it wasn't returning () on + failure. + - added tests for paletted image handling and the methods + specific to those images + - the XS for i_setcolors() was missing the OUTPUT clause for + RETVAL, and hence wasn't returning failure on failure. + - supplying a sufficiently small scaling value could make the + scale() method return an image with zero height or width. + Several of the above together resolve + https://rt.cpan.org/Ticket/Display.html?id=7467 + - the void context warning for scale() now includes the callers + filename/line (instead of the default of Imager.pm line 15xx) + - Imager->new will now return undef if the dimensions or number of + channels specified for an image are out of range. An error + message can be retrieved with Imager->errstr. + - added the C color specifier and the + Imager::Color::Table class which defines those colors. + Resolves https://rt.cpan.org/Ticket/Display.html?id=2593 + - added the equals() method to Imager::Color. + Resolves https://rt.cpan.org/Ticket/Display.html?id=2238 + - prevent a test warning introduced by the above + - the rotate() and matrix_transform() methods now accept a 'back' + parameter specifying a background color. This is only used + where there is no source data (think of the corners around an + image rotated 45 degrees) and it not combined with transparent + pixels from the source image. + Resolves https://rt.cpan.org/Ticket/Display.html?id=6140 + - removed a warning generated by the new matrix_transform() test + - added a method index to Imager.pm + - corrected "flood fill" to "flood_fill" in Imager/Draw.pod + - removed compose() method from Imager/Transformations.pod since + it isn't implemented yet + - the image resulting from a crop is now the same type as the + source image (paletted vs direct, bits/sample) + Resolves https://rt.cpan.org/Ticket/Display.html?id=7578 + - the parameters to crop() weren't handled correctly in most + cases other than supplying left,top,right,bottom. + - clarified the documentation for crop() providing more detail + and more examples + - the edges of the cropped area are now cropped against the + edges of the source image + - cropping to zero width/height is treated as an error (no + image is returned and $src->errstr has a message) + Resolves https://rt.cpan.org/Ticket/Display.html?id=7581 + - built 0.43_01 for testing + +0.43_02 Mon 26 Oct 2004 + +- the changes to scale() had some problems with integer vs floating point + calculations (only caught in tests under perl 5.8.5 ) +- the FT2 glyph_names() method didn't do correct error handling + when the string parameter wasn't supplied +- i_ft2_glyph_name() accepted only an unsigned char as the + character code to get the name for, which meant it + didn't work for unicode characters \x{100} or above +- the XS for i_ft2_glyph_name() had a similar problem +- added NameTest.ttf to be used in checking unicode glyph + names +- added reliable_only optional parameter to the glyph_names() + method so you can ignore theresult of FT_Has_PS_Glyph_Names() +- handle errors given by i_ft2_glyph_name() a bit more + correctly +- the FT1 glyph_names() method didn't do correct error handling + when the string parameter wasn't supplied +- some memory allocated when creating a callback IO object (io_new_cb) + wasn't being released (detected with valgrind) +- the testtools.pl match[nx]() functions escapes the test string on + test failure a bit better +- the XS code for i_tt_glyph_name() used unsigned char to store a + unicode character when it should have used unsigned long. +- the XS code for i_t1_glyph_name() used unsigned char to store a + unicode character when it should have used unsigned long. +- resolves https://rt.cpan.org/Ticket/Display.html?id=7949 +- the type 1 glyph_names() method didn't do correct error handling + when the string parameter wasn't supplied +- renamed io.h to imio.h to prevent problems building under cygwin. + resolve https://rt.cpan.org/Ticket/Display.html?id=7948 +- i_writegif_low() wasn't setting the returned global palette, which + meant a rubbish palette was returned to the user (detected with valgrind) +- built 0.43_02 for testing + +0.43_03 Wed 8 Dec 2004 + +- change the "double-include" protection macro that imio.h uses. +- updated download locations for the various libraries that Imager + depends on. Added some advice for cygwin. +- more information on gif library versions in README and Makefile.PL +- creating an image where the size of the allocated image buffer would + overflow an integer would cause too small a buffer to be allocated. + This could potentially be a security hole. + partly resolves https://rt.cpan.org/Ticket/Display.html?id=8213 +- set i_format to jpeg for jpeg files and test for it +- set i_format to png when reading png files and test for it +- i_yres was being set to the xres when reading a png file +- added many bad BMP files to test various code paths in bmp.c, and + made many minor fixes to bmp.c to make them work: + - it was possible for various types of read failures to SEGV, both + as NULL pointer dereferences and buffer overflows + - some errors, like palettes being too large for the number of bits + per pixel, were not being caught + - failing to read all of a packed data structure would not cause + a read failure + - invalid compression types were not always caught + - error messages are more consistent (still not always great messages, + but one step at a time) +- added bmp_compression_name, bmp_used_colors, bmp_filesize, bmp_bit_count + tags on reading a BMP file +- added tools/imager to the distribution. This is still very + experimental and untested. Patches welcome, if you write tests to go + with them. +- the BMP reader now validates the bfOffBits value from the BMP header + and skips to that offset before reading image data. Previously this + value was read but otherwise ignored. +- added --palette action to tools/imager +- i_img_pal_new() now releases the image object memory if creation + fails. +- set i_format to gif when reading gif files and test for it +- set i_format to pnm when reading pnm files and test for it +- set i_format to tga when reading tga files and test for it +- handle image creation failures when reading tga files +- set i_format to tiff when reading tiff images and test for it +- handle image creation failures when reading tiff files +- test t/t35ttfont.t no longer requires TTFONTTEST to be set (and + hasn't for a long time,) removed that requirement from README +- updated home page URLs throughout the .pods +- added information on reporting bugs to the SUPPORT section of Imager.pm +- regops.perl now sorts the dumped data structure to produce minimal diffs +- quant.c now checks for integer overflow allocating its image data +- i_readraw_wiol() now checks for image creation failure +- i_readrgb_wiol() now checks for image creation failure +- i_writergb_wiol() was an empty stub, it now pushes an error message + and explicitly returns failure. +- i_readrgb_wiol() now sets i_format to rgb. +- set i_format to raw when reading tga files and test for it +- document i_format tag +- some tests were using $Config{ivsize} when they should have been + using $Config{intsize} + Resolves: https://rt.cpan.org/Ticket/Display.html?id=8645 +- tools/imager has been removed from the MANIFEST, it's way too late + to test/debug for 0.44. +- image.h had no prototype for i_ft2_bbox_r() and it was being called + from Imager.xs +- giflib 4.1.3 still doesn't have all the bugs fixed, update the notes + in README and in the buggy_giflib.txt file that t105gif.t produces +- make the inclusion of NO_META dependent on the version of EU::MM. + I was going to include a META.yml but EU::MM's generation is too + simplistic (and misses the leading document header too). For now + I'll leave it out. +- built 0.43_03 for testing + +0.44 Wed 15 Dec 2004 +- modify the default include directories list to include the location + FreeBSD keeps freetype1 headers after the freetype2 locations. + This ensures that the -I options are generated with freetype2 + locations first, so that those directories are searched before + the freetype1 directories. This prevents problems compiling + font.c on FreeBSD. + Resolves: http://rt-cpan.fsck.com/Ticket/Display.html?id=1723 +- finish off a sentence in the "Producing an image from a CGI script" + example in Imager::Files +- method index didn't include errstr() +- document that you don't want the FT2 freetype.h in the include path + +0.44_01 +- the plugins Makefile has long produced an error after all tests were + complete on Win32, finally tracked down why +- Makefile.PL now checks the directories specified by $Config{locincpth} + and $Config{loclibpth} for includes and libraries respectively. + Resolves: https://rt.cpan.org/Ticket/Display.html?id=2942 +- we were undefing the wrong macro (used as an include guard) when + building the error code translation function for freetype 2. This + meant most errors came out as numbers. +- add a note to the README on how to get font suitcases and dfont files + working on OS X. +- add dfont to the list of extensions supported by ft2 +- document Imager::Font->new()'s index parameter +- added concept index to Imager.pm's POD +- the gradgen filter now does the same color value conversion that + Imager's drawing functions do. +- added trivial multiple master support via the FT2 driver +- added .pcf and .pcf.gz to the list of extensions supported by ft2 +- the tiff reader now puts warning messages produced during reading into + the i_warning tag. + Resolves: https://rt.cpan.org/Ticket/Display.html?id=8722 +- the i_xres and i_yres tags are now stored in a resolution similar + to their source. + Resolves: https://rt.cpan.org/Ticket/Display.html?id=8520 +- added tiff_resolutionunit_name tag when reading tiff files +- Makefile.PL now attempts to use freetype-config to configure freetype 2 + and pkg-config to configure libpng. +- avoid complaining about include/lib directories we pull from + perl's config or we have built-in +- Makefile.PL now builds imconfig.h with #defines for libraries + present (and for the GIF library version) rather than putting them + into CFLAGS +- scanning for required include files is now down by directory rather + than by file, using -e to check for the existence for a file rather than + doing an eq against every filename in the directory. +- previously we only checked a candidate include directory for freetype.h + to consider it a valid FT1.x include directory. We now check if it + contains fterrors.h too, if it does, then it's from a FT2 installation + and we ignore it. +- Makefile.PL now accepts command-line options to set include and library + directories and to enable/disable drivers. +- added simple examples to most of the filters documented in + Imager::Filters +- explicitly document there are no PNG specific tags. +- more examples in Imager::Draw +- minor cleanup of Imager::Fill +- eliminate unused variables and static functions +- simplify some XS code by adding another typemap entry +- the right-side bearing used to adjust the final width wasn't being + calculated correctly, this would cause the bounding_box() function for + freetype 2.x to return a larger than expected text width. + http://rt.cpan.org/NoAuth/Bug.html?id=11291 +- add scaleX/scaleY to the method index and gives them some examples + http://rt.cpan.org/NoAuth/Bug.html?id=11328 +- call read() instead of open() in the example code in Imager.pm, + and mention that open() is an alias for read(). + http://rt.cpan.org/NoAuth/Bug.html?id=11431 +- added reference list of crop() parameters. + http://rt.cpan.org/NoAuth/Bug.html?id=11430 +- reading a tga image with an idstring of 128 or more bytes would result + in an allocation error, if the platform char type was signed +- tests now check that tga tags are set +- calling the read() method for a format not included in the Imager build, + for example, JPEG with no libjpeg installed, would crash with an + undefined function error (modified by DynaLoaders dependence on + AutoLoader.) + http://rt.cpan.org/NoAuth/Bug.html?id=9618 +- some test scripts have been modified to use Test::More, which is now + included under the t directory. Eventually all will be modified to use + Test::More and the duplicates in t/testtools.pl will be removed +- the convert, crop, rotate, copy, matrix_transform, to_paletted, to_rgb8, + scaleX and scaleY methods now warn when called in void context. + http://rt.cpan.org/NoAuth/Bug.html?id=9672 +- correct email addresses in the README file, and include bug reporting + information there too +- added README for samples directory, describes interleave.pl and + anaglyph.pl to start. +- the XS for the internal i_glin() function wasn't copying the pixel + values across to the returned color objects. + http://rt.cpan.org/NoAuth/Bug.html?id=11860 +- Imager::Cookbook wasn't included in the MANIFEST +- added samp-form.cgi and samp-image.cgi to the samples directory to + demonstrate displaying a generated image on a HTML page. +- Makefile.PL now adds rules to generate a suitable META.yml to the + generated Makefile. +- added sample code for handling images uploaded via a HTML form. +- saving a GIMP gradiant file with Imager::Fountain->save has always been + broken. Fixed it and added tests. +- newer versions of GIMP add a line to gradient files before the + segment count giving a descriptive name of the gradient. + Imager::Fountain can now read and write such gradient files. The + interface is a bit indirect, but I'd like to preserve + Imager::Fountain as a blessed array ref for now. +- the segments parameter supplied to the fountain filter and the + fountain fill contructor now accepts color names or other + descriptions as other functions do. +- fix a few compiler warnings +- document the Imager::Font::BBox advance_width() method +- Imager::Font::BBox advance_width() method was falling back to + the wrong value when the font driver's low level function + didn't return the advance width. +- the FT 1.x was comparing versus an uninitialized variable when + checking the end of string when calculating the right side bearing + used to adjust pos_width for glyphs that overlap the right side of the + advance width. +- Imager::Font::BBox objects now have right_bearing() and display_width() + methods. Hopefully this and the advance_width() method fills out + the Imager bounding box interface to a useful state. + Implemented for FT2, FT1.x, T1Lib so far. ================================================================= For latest versions check the Imager-devel pages: - http://imager.perl.org/~addi/perl/Imager/ + http://imager.perl.org/ =================================================================