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()
Tony Cook [Thu, 9 May 2002 13:23:08 +0000 (13:23 +0000)]
- 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
Modified i_line_aa to use a modified bresenham algorithm. This method
also does endpoint handling like i_line does. This will hopefully make
line drawing more consistent.
Switched i_draw to i_line, added endpoint boolean condition,
switched the algorithm to Bresenham from a stupid floating point
implementation. Updated docs.
Tony Cook [Sun, 31 Mar 2002 11:09:10 +0000 (11:09 +0000)]
- 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