Tony Cook [Thu, 23 Dec 2004 23:01:27 +0000 (23:01 +0000)]
- 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.
Tony Cook [Thu, 23 Dec 2004 01:05:44 +0000 (01:05 +0000)]
- 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
Tony Cook [Tue, 7 Dec 2004 22:59:23 +0000 (22:59 +0000)]
- 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.
Tony Cook [Thu, 2 Dec 2004 04:07:27 +0000 (04:07 +0000)]
- 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
Tony Cook [Thu, 2 Dec 2004 03:53:37 +0000 (03:53 +0000)]
- 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
Tony Cook [Sun, 28 Nov 2004 13:09:58 +0000 (13:09 +0000)]
- 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.
Tony Cook [Thu, 25 Nov 2004 12:39:05 +0000 (12:39 +0000)]
- 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
Tony Cook [Fri, 12 Nov 2004 05:03:11 +0000 (05:03 +0000)]
- 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
Tony Cook [Mon, 25 Oct 2004 14:10:49 +0000 (14:10 +0000)]
- 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)
Tony Cook [Mon, 18 Oct 2004 23:52:10 +0000 (23:52 +0000)]
- 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
Tony Cook [Mon, 18 Oct 2004 05:34:03 +0000 (05:34 +0000)]
- 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()
- partly resolves https://rt.cpan.org/Ticket/Display.html?id=7949
- 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
Tony Cook [Fri, 8 Oct 2004 06:10:32 +0000 (06:10 +0000)]
- 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
Tony Cook [Fri, 10 Sep 2004 13:29:55 +0000 (13:29 +0000)]
- 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
Tony Cook [Mon, 6 Sep 2004 03:15:12 +0000 (03:15 +0000)]
- 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
Tony Cook [Sun, 5 Sep 2004 11:09:48 +0000 (11:09 +0000)]
- 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
Tony Cook [Sun, 5 Sep 2004 08:32:04 +0000 (08:32 +0000)]
- added the C<builtin> color specifier and the
Imager::Color::Table class which defines those colors.
Resolves https://rt.cpan.org/Ticket/Display.html?id=2593
Tony Cook [Sun, 5 Sep 2004 05:28:46 +0000 (05:28 +0000)]
- 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.
- 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.
Tony Cook [Thu, 26 Aug 2004 04:31:42 +0000 (04:31 +0000)]
- 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.
- added a bunch of tests for reading pnm files.
Tony Cook [Sun, 8 Aug 2004 03:44:46 +0000 (03:44 +0000)]
- 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.
Tony Cook [Tue, 13 Jul 2004 04:01:49 +0000 (04:01 +0000)]
- 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)
Tony Cook [Thu, 22 Apr 2004 07:01:07 +0000 (07:01 +0000)]
- 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.
Tony Cook [Thu, 22 Apr 2004 03:04:14 +0000 (03:04 +0000)]
- refer the user to appropriate documents in the example in
Imager.pm
- change the list of documents in Imager.pm to move the document
names out of the =item lines so we can make them into links
Tony Cook [Wed, 10 Mar 2004 13:22:41 +0000 (13:22 +0000)]
- 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().
Tony Cook [Thu, 5 Feb 2004 04:32:16 +0000 (04:32 +0000)]
- added log() and exp() functions to transform2()
- change the getpN() functions in transform2() to set a
reasonable alpha if the input image has no alpha
- document the constants that transform2() defines
Tony Cook [Thu, 26 Jun 2003 03:50:00 +0000 (03:50 +0000)]
- 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
Tony Cook [Tue, 31 Dec 2002 14:38:39 +0000 (14:38 +0000)]
- 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
Tony Cook [Tue, 5 Nov 2002 14:14:23 +0000 (14:14 +0000)]
- 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.
Tony Cook [Tue, 5 Nov 2002 00:11:23 +0000 (00:11 +0000)]
fixed issue reported in ticket 1748, and added smoke tests that should
have been there to detect it in the first place ;)
updated t37w32font.t to allow for i_draw to i_line rename
removed non-portable call to rint()