ID:               49815
 Updated by:       t...@php.net
 Reported By:      christian dot roy at orange dot fr
 Status:           Feedback
 Bug Type:         GD related
 Operating System: Linux
 PHP Version:      5.2.11
 Assigned To:      tabe
 New Comment:

s/#45600/#49600/


Previous Comments:
------------------------------------------------------------------------

[2010-01-14 04:59:07] t...@php.net

rasmus, your observation is essential to understand this bug.
fix for bug#45600 also seems to work well.

With PHP_5_2 or trunk:

bbox returned rectangle for a : -1  *  2  *  38  *  2  *  38  *  -42  *
 -1  *  -42

bbox returned rectangle for k : -1  *  -1  *  42  *  -1  *  42  *  -62 
*  -1  *  -62

bbox returned rectangle for j : -1  *  17  *  23  *  17  *  23  *  -57 
*  -1  *  -57

------------------------------------------------------------------------

[2009-12-23 17:49:24] christian dot roy at orange dot fr

Hi,

Did you progress on this issue whicj sticks me to PHP 4.

Thanks for your answer.

------------------------------------------------------------------------

[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] paj...@php.net

Tabe, can you look at this one too please? :)

------------------------------------------------------------------------

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

Reply via email to