Hello,
I've found a bug in the function font_render() of _imagingft.c.
The "x" value is adapted according to the horiBearingX value of the
first glyph but the concerned glyph is loaded after.
I suggest the patch in attachment.
Is anyone can take a look and confirm this is really a bug ?
Regards,
--
Erwan Loaec
--- Imaging-1.1.7/_imagingft.c 2009-11-01 01:44:12.000000000 +0100
+++ Imaging-1.1.7_patch/_imagingft.c 2011-01-14 16:06:10.000000000 +0100
@@ -331,18 +331,18 @@
load_flags |= FT_LOAD_TARGET_MONO;
for (x = i = 0; font_getchar(string, i, &ch); i++) {
+ index = FT_Get_Char_Index(self->face, ch);
+ error = FT_Load_Glyph(self->face, index, load_flags);
+ if (error)
+ return geterror(error);
if (i == 0 && self->face->glyph->metrics.horiBearingX < 0)
x = -PIXEL(self->face->glyph->metrics.horiBearingX);
- index = FT_Get_Char_Index(self->face, ch);
if (kerning && last_index && index) {
FT_Vector delta;
FT_Get_Kerning(self->face, last_index, index, ft_kerning_default,
&delta);
x += delta.x >> 6;
}
- error = FT_Load_Glyph(self->face, index, load_flags);
- if (error)
- return geterror(error);
glyph = self->face->glyph;
if (mask) {
/* use monochrome mask (on palette images, etc) */
_______________________________________________
Image-SIG maillist - Image-SIG@python.org
http://mail.python.org/mailman/listinfo/image-sig