From: Takeshi Abe <tabe@php.net> Date: Wed, 24 Mar 2010 04:12:19 +0000 (+0000) Subject: Fixed bug #51263 (imagettftext and rotated text uses wrong baseline) X-Git-Tag: php-5.3.3RC1~373 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a46e108b838b7c50e36ba6855b93bf8ae03d8234;p=php Fixed bug #51263 (imagettftext and rotated text uses wrong baseline) --- diff --git a/ext/gd/libgd/gdft.c b/ext/gd/libgd/gdft.c index a3ced0ab1b..ac2bf344ff 100644 --- a/ext/gd/libgd/gdft.c +++ b/ext/gd/libgd/gdft.c @@ -1101,7 +1101,7 @@ gdImageStringFTEx (gdImage * im, int *brect, int fg, char *fontlist, double ptsi /* now, draw to our target surface */ bm = (FT_BitmapGlyph) image; - gdft_draw_bitmap(tc_cache, im, fg, bm->bitmap, x + x1 + ((pen.x + 31) >> 6), y + y1 + ((pen.y + 31) >> 6) - bm->top); + gdft_draw_bitmap(tc_cache, im, fg, bm->bitmap, x + x1 + ((pen.x + 31) >> 6) + bm->left, y + y1 + ((pen.y + 31) >> 6) - bm->top); } /* record current glyph index for kerning */ diff --git a/ext/gd/tests/bug51263.phpt b/ext/gd/tests/bug51263.phpt new file mode 100644 index 0000000000..8e86f41764 --- /dev/null +++ b/ext/gd/tests/bug51263.phpt @@ -0,0 +1,32 @@ +--TEST-- +Bug #51263 (imagettftext and rotated text uses wrong baseline) +--SKIPIF-- +<?php + if(!extension_loaded('gd')){ die('skip gd extension not available'); } + if(!function_exists('imagettftext')) die('skip imagettftext() not available'); +?> +--FILE-- +<?php +$cwd = dirname(__FILE__); +$ttf = "$cwd/Tuffy.ttf"; +$w = 23; +$h = 70; +$img = imagecreatetruecolor($w, $h); +$blk = imagecolorallocate($img, 0, 0, 0); +imagefilledrectangle($img, 0, 0, $w-1, $h-1, $blk); +$col = imagecolorallocate($img, 255, 255, 255); +imagettftext($img, 8, 90, 10, 60, $col, $ttf, "foo bar qux"); +$x = array(0, 1, 2, 3, 13); +for ($j=0; $j<30; $j++) { + foreach ($x as $i) { + $c = imagecolorat($img, $i, $j); + if ($c != 0) { + echo "KO: ($i, $j)\n"; + exit; + } + } +} +echo "OK\n"; +?> +--EXPECTF-- +OK