This is a php5 library (two classes) I wrote to convert TrueType Font text into an image, using the GD library.
Download here: Text Image Converter (213.33 KB) (includes an example, documentation and some free fonts).
or from svn (read only): svn co svn://byteset.com/tic
Documentation is also available online here: http://www.andreabelvedere.com/docs/tic/
See the library in action here: http://whatshouldidonow.eu/ (The site is still a work in progress)
To extend the library to add support for other Font types just extend the TIC abstract class and implement the create and dimension methods.
See example below on how to use it:
<?php /** * @file image.php */ require_once 'lib/tic.php'; TIC::factory('fonts/AAJAX.TTF') ->setText('Hello World !') ->setBackground(0x00, 0xff, 0xff) ->setColor(0x00, 0x00, 0x00) ->setSize(24)->create(true);
Than in your html:
<img src="image.php" alt="TIC" />
That will output the following image:
![]()
The library is under the LGPL license, which means you can freely use it for commercial and non commercial applications, please post a comment for feedbacks, bugs, or links of projects where you have use it.
Leave a Comment or Trackback from your own site.

How is it possible to generate images from TTF fonts for chinese characters? I do not know how to get those UNICODE characters as arguments to setText. I did also try to use the PHP image library directly but ran into similar problems, the PHP-chr() function allows only ASCII.
I do have TTF font files (from university of Heidelberg) and want to generate chinese texts from a database using PHP.
Reply
andrea belvedere Reply:
July 27th, 2009 at 11:52 am
Hi Martin,
I am not sure I have fully understood what you are asking, however I have run this test with a Japanese font and it works perfectly:
And the output is here below:

In your case you will pass text to
setTextas follow:setText($unicode);where$unicodewill hold your unicode string from the database.Hope this helps.
Andrea
Reply
Your website is excellent. I m gonna read all, thank you. Keep working on it.
Reply