php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #24280 imagettftext() randomly returns a warning
Submitted: 2003-06-21 16:18 UTC Modified: 2003-06-23 20:00 UTC
Votes:2
Avg. Score:5.0 ± 0.0
Reproduced:2 of 2 (100.0%)
Same Version:2 (100.0%)
Same OS:2 (100.0%)
From: haafiz at ezwebsolutions dot ca Assigned:
Status: Not a bug Package: GD related
PHP Version: 4.3.2 OS: Windows 2000 Server
Private report: No CVE-ID: None
 [2003-06-21 16:18 UTC] haafiz at ezwebsolutions dot ca
Description:
------------
Every so often, I get this output from my file:

<br />
<b>Warning</b>:  imagettftext(): Problem loading glyph in <b>g:\hostroot\a0007\default\wwwroot\images\button.php</b> on line <b>81</b><br />
?PNG

   
IHDR   ?      ?~?   TPLTE   ???????߿?޽?ϟ??†?d?ϟ????ٳ?ر?ӧ__G??~??m?Р???GG5vvY?̙???33&ffLLL9_??r?g"?   ?IDATx????? D?????????6iZ?Dġs??x????&?WX,?5i???H5?|???^"$?:V??#>??D??W??X?????Y???syFj*O???	B?uf?	???HM剴????줻5??"?&"?NL????o??4
Q?W?	?|?55?'?9J戓?l?ɦ&?J???D??O4?*???KMzܟ???:?O 6    IEND?B`?


And so ofcourse, the image displays as the notorious red X in IE

Reproduce code:
---------------
<?php

define("FONTFILE", "./arial.ttf");
define("FONTSIZE", 8);
define("WIDTH", 145);
if ($_GET["bottom"] == 1) {
	define("HEIGHT", 20);
	$mod = -1;
}
else {
    define("HEIGHT", 19);
	$mod = 0;
}

$im = imagecreate(WIDTH,HEIGHT);
$black = imagecolorallocate($im, 0, 0, 0);

//This part of the code was omited because of its length. It basically is a bunch of imagesetpixel(), imageline(), and imagefilledrectangle() functions to give this button a 3d bevel.

//text
$textdata = imagettfbbox(FONTSIZE, 0, FONTFILE, $_GET["text"]);
$bbox_h = $textdata[1] - $textdata[7];
imagettftext($im, FONTSIZE, 0, 4, 14, $black, FONTFILE, $_GET["text"]);

imagepng($im);

?>

Expected result:
----------------
Most of the time this works, but it randomly gives the error described above.
This problem only occurs on PHP 4.3.2 and worked fine under 4.2.3.


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2003-06-23 14:44 UTC] haafiz at ezwebsolutions dot ca
Also, in addition to the "Problem loading glyph in..." problems, I get some "Problem setting text size" errors as well.

And, this problem goes away every time you restart apache, but that means I have to keep restarting it to make it work.

If I put an "@" in front of the errornous lines, it doesnt give me a Red X but just the image without the text on it.
 [2003-06-23 17:40 UTC] iliaa@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

Unfortunately Freetype functions are not thread safe, so in a threaded enviroment problems such as the ones you are experiencing will occur.
 [2011-01-11 20:31 UTC] rasmus at mindplay dot dk
Are you positive that this is not a bug?

I ran into it today - with PHP 5.3.1 on localhost.

As I am the only user on my own local machine, I don't understand how this could be a thread issue. For reasons I don't understand, it may be a thread issue, I can't say for sure of course.

But if you're using a non-thread-safe library in an application or library that is designed to be thread-safe, wouldn't it make sense to surround those calls with some form of mutex/lock/unlock statements?

I realize that would degrade performance on multi-threaded servers - but if you're going to use these functions at all, degraded performance is probably preferable to dead applications.

Or not?
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Fri Apr 25 09:01:30 2025 UTC