ID: 49815
Comment by: christian dot roy at orange dot fr
Reported By: christian dot roy at orange dot fr
Status: Assigned
Bug Type: GD related
Operating System: Linux
PHP Version: 5.2.11
Assigned To: tabe
New Comment:
Hi,
Did you progress on this issue whicj sticks me to PHP 4.
Thanks for your answer.
Previous Comments:
------------------------------------------------------------------------
[2009-12-16 21:56:23] rasmus at mindplay dot dk
To help you debug this issue, I created the following test-script:
<?php
define('SAMPLE', @$_SERVER['QUERY_STRING'] ? $_SERVER['QUERY_STRING'] :
'abc');
define('SAMPLE_TTF', dirname(__FILE__).'/georgiai.ttf');
define('SAMPLE_SIZE', 100);
define('SAMPLE_PAD', 50);
$m = imagettfbbox(SAMPLE_SIZE, 0, SAMPLE_TTF, SAMPLE);
$width = $m[4]-$m[6] + 2*SAMPLE_PAD;
$height = $m[1]-$m[7] + 2*SAMPLE_PAD;
$baseline = abs($m[7]);
$img = imagecreatetruecolor($width,$height);
$red = imagecolorallocate($img,255,0,0);
$white = imagecolorallocate($img,255,255,255);
imagettftext(
$img,
SAMPLE_SIZE, # size
0, # angle
SAMPLE_PAD, # x
SAMPLE_PAD+$baseline, # y
$white,
SAMPLE_TTF,
SAMPLE
);
imagerectangle(
$img,
$m[6]+SAMPLE_PAD, $m[7]+SAMPLE_PAD+$baseline, # upper left x,y
$m[2]+SAMPLE_PAD, $m[3]+SAMPLE_PAD+$baseline, # lower right x,y
$red
);
header('Content-type: image/png');
imagepng($img);
?>
You will need to adjust the SAMPLE_TTF path to point to a valid
truetype file - the one I'm using is Windows standard Georgia Italics.
The output should be a white sample of text with a red border, and the
border should grace the text, not overlap it.
For reference, here's what it looks like on Linux (GOOD):
http://mindplay.dk/temp/metrics/imagettf-good.png
And here's what it looks like on Windows (BAD):
http://mindplay.dk/temp/metrics/imagettf-bad.png
I just tried the latest XAMPP build (1.7.2 beta 2) for Windows, and the
bug is still present.
If you run the script from a browser, you can add your own sample text
by adding a query string, e.g.:
http://localhost/sample.php?abcdefg
Note that using a larger font-size (SAMPLE_SIZE) seems to increase the
error. It seems that all the returned coordinates are off by a
percentage, not by a fixed number of pixels.
I hope this helps solve the problem...
------------------------------------------------------------------------
[2009-12-08 13:57:04] rasmus at mindplay dot dk
This problem occurs with imageftbbox() as well.
I developed a font-embedding system (http://fontjazz.com) and it has
worked for a long time with PHP5.1 and earlier, but never with PHP 5.2
or 5.3, where the coordinates (both X and Y) come out all wrong.
I'm using Windows for development, Linux for deployment, and I have to
keep the production server running with PHP 5.1 for this reason - both
Linux and Windows versions fail to give the right coordinates.
------------------------------------------------------------------------
[2009-10-08 20:19:09] [email protected]
Tabe, can you look at this one too please? :)
------------------------------------------------------------------------
[2009-10-08 20:14:30] christian dot roy at orange dot fr
Sorry.
"Actual result" should have been :
with 5.2.11 :
bbox returned rectangle for a : -1 * 1 * 32 * 1 * 32 * -38 *
-1 * -38
bbox returned rectangle for k : -1 * -1 * 37 * -1 * 37 * -57
* -1 * -57
bbox returned rectangle for j : -1 * 17 * 21 * 17 * 21 * -57
* -1 * -57
------------------------------------------------------------------------
[2009-10-08 19:49:40] [email protected]
Thank you for your bug report.
The expected and actual results in your bug report are the same. Please
describe what is wrong with the x-coordinate and what you expect.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/49815
--
Edit this bug report at http://bugs.php.net/?id=49815&edit=1