|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #12064 Truetype functions can't locate fonts
Submitted: 2001-07-11 15:03 UTC Modified: 2001-07-23 03:36 UTC
From: ben at kescom dot net Assigned:
Status: Closed Package: GD related
PHP Version: 4.0.6 OS: Windows 2000 SP1
Private report: No CVE-ID: None
View Add Comment Developer Edit
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please !
Your email address:
Solve the problem:
45 - 18 = ?
Subscribe to this entry?

 [2001-07-11 15:03 UTC] ben at kescom dot net
The GD TrueType functions can't find fonts; relative paths and absolute paths both do not work.

Example (font is in the local directory, and . is part of my php.ini include_path)
$image = ImageCreateTrueColor(200,200);
ImageTTFText($image, 20, 0, 2, 15, $red, "d:/path/to/font.ttf", "Some text.");
header("Content-type: image/jpeg");
// alternatively, ImageTTFText($image, 20, 0, 2, 15, $red, "font.ttf", "Some text."); 
header("Content-type: image/jpeg");
ImageJPEG($image, '', 100);
(written off the top of my head, it's in a larger script, but test scripts I wrote and unfortunately deleted don't work either)

PHP reports: Warning: Could not find/open font in d:\path\to\fonttest.php on line 3

This is from the binary Win32 distribution of PHP 4.0.6 on


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2001-07-12 14:36 UTC]
No idea about the Windows version, but on UNIX the new GD2 library is hardcoded to look for TTF fonts in /usr/share/fonts/truetype.  Also, it automatically adds the .ttf extension itself so in your code you should not put the .ttf extension on your font.
 [2001-07-12 15:40 UTC] ben at kescom dot net

  I did some reading through the GD docs; it seems that GD uses an environment variable called GDFONTPATH to locate its fonts when no path is specified (this seems to imply that the proper extension would also be appended). However, setting this properly did not work. The documentation also says that a full path will be accepted (with .ttf ending) if specified as a parameter.

  Seems like a problem with the way PHP is passing the string, perhaps. I would play with the source, but I don't have a compiler for this environment right now; it seems that people are not having this problem on Unices, so I won't bother looking there.

Any clue?

 [2001-07-12 16:00 UTC]
please use filemon ( to find out where php/gd is searching for the fonts, and report back.

 [2001-07-12 16:08 UTC]
Are you sure that GD understands d:/path/to/font.ttf as a path?
Should it be d:\\path\\to\\font.ttf ?

 [2001-07-12 17:18 UTC] ben at kescom dot net
Pretty sure, but it doesn't work the other way around either.
 [2001-07-12 17:34 UTC] ben at kescom dot net
Ok, I checked out filemon.
Here's what's happening:
GD first tries to open files inside the Apache root (not the web root; for instance, on my box, C:\Program Files\Apache. So, if I've specified "C:\\path\\to\\font.ttf" in my path, I end up with:
C:\Program Files\Apache\C\C:\path\to\font.ttf.ttf

Next, it tries the current directory. However, it seems to be unable to process Windows drive letters, and so defaults to drive C: (my webroot's on D:, which is a problem), so I get

You get the idea. I made a directory structure on C: mimicing that of my D: webroot, but only containing the fonts; it worked fine (although the antialiasing was horrific, but that's a GD/FT2 issue).

 [2001-07-22 19:20 UTC]
Fixing "null" status.

So, is this a GD Bug, or a PHP bug?
 [2001-07-22 19:22 UTC] ben at kescom dot net
That would take a good look at the source code to see how PHP is passing arguments to the GD library.
 [2001-07-23 03:36 UTC]
already fixed in cvs.
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Feb 24 07:01:28 2024 UTC