Letter placement error with GD2, TTF and PHP
Posted
by Javier Parra
on Stack Overflow
See other posts from Stack Overflow
or by Javier Parra
Published on 2010-04-22T23:40:31Z
Indexed on
2010/04/22
23:43 UTC
Read the original article
Hit count: 394
Some time ago I made a script that takes some text and returns it as an image, and worked flawlessly. But I'm not sure since when a weird bug started to happen. The letters that have a (my apologies to the font geeks) "glyph" on the left get pushed to the right so the letter starts on it, but leaves space only for the main letter, hehe, I think an example should do it.
The expected result is:
The "bad" one was generated, obviously, by my script, located here: http://www.esbasura.com/images/text.php?txt=The%20quick%20brown%20fox%20jumps%20over%20the%20lazy%20dog.&fnt=1&size=23&bg=lightgrey And the good one was generated by dafont here: http://img.dafont.com/preview.php?text=The%20quick%20brown%20fox%20jumps%20over%20the%20lazy%20dog.&ttf=bleeding_cowboys0&ext=1&size=23&psize=m&y=46
I'm not doing anything fancy in the script, here is the relevant part:
imagefilledrectangle($im, 0, 0, $width, $height, $$bg);
imagettftext($im, $size, 0, (-1*$textsize[6]), (-1*$textsize[7]), $$color, $font, $text);
// imagefttext($im, $size, 0, (-1*$textsize[6]), (-1*$textsize[7]), $$color, $font, $text); same results using imagefttext
imagecolortransparent($im, $$bg);
header("Cache-Control: public"); // HTTP/1.1
header("Content-type: image/png");
imagepng($im);
imagedestroy($im);
}
I'm kind of surprised, because, as I said, it used to work flawlessly. Maybe my host changed my machine.
(here's my phpinfo: http://www.work4bandwidth.com/info.php) Relevant bit:
gd
GD Support enabled
GD Version bundled (2.0.34 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.2.1
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
© Stack Overflow or respective owner