přestalo mi fungovat imagettftext

Vytvářím kontrolní obrázek pro guestbook pomocí GD funkce imagettftext tady http://rosalynda.wz.cz/php/ukazka/rand_code/ . Nejdřív mi fungoval, ale pak po nahrání jiných fontů se nechce zobrazit. Dala jsem zpět původní fonty, ale nepomohlo to. Z času na čas se obrázek částečně ukáže, teda má pozadí, ale text se nevypíše. Občas se vypíše chybové hlášení, že nelze nalézt ttf soubory. Je zapotřebí nastavit CHMOD u ttf spouborů nebo něco? Mimochodem, vytvoření jednoduššího obrázku funkcí ImageString nadále funguje. Díky za případné rady.

Zde je mů zdroj:
if ($test == 1) {
$im = imagecreate((10 + $pocet_znaku*50), (72 + $pocet_znaku*30));
}
else {
$im = imagecreate((10 + $pocet_znaku*50), 96);
}
$barva_bkg = imagecolorallocate($im, 240, 240, 240);
$barva_font = imagecolorallocate($im, 40, 40, 40);
$barva_grey = imagecolorallocate($im, 200, 200, 200);
$barva_blue = imagecolorallocate($im, 0, 0, 255);
$barva_red = imagecolorallocate($im, 255, 0, 0);
imagefill($im, 0, 0, $barva_bkg);
if($pozadi == 1) {
$num1arcs = ($pocet_znaku + 3) ;
for ($i=1; $i<=$num1arcs; $i++) {
imagearc($im, -15+$i*30+rand(-20,20), 40+rand(-20,20), 96+rand(-20,20), 96+rand(-20,20), 0, 360, $barva_red);
}
$num2arcs = ($pocet_znaku + 3);
for ($i=1; $i<=$num2arcs; $i++) {
imagearc($im, -15+$i*30+rand(-20,20), 40+rand(-20,20), 96+rand(-20,20), 96+rand(-20,20), 0, 360, $barva_blue);
}
}
$ttfdirectory = dirname($_SERVER["PATH_TRANSLATED"]) . "/ttf/" ;
$TTFCHOICES=array();
if (is_dir($ttfdirectory)) {
if($dir_handle = opendir($ttfdirectory)){
while($file = readdir($dir_handle)){
if($file !== "." && $file !== ".." && kontrola_extenze($file,"ttf")){
$TTFCHOICES[] = $file;
}
}
}
closedir($dir_handle);
}
else {
exit ("<p>Chyba... nelze nalézt ttf adresáø... ");
}
$pocet_fontu = count($TTFCHOICES);
if ($pocet_fontu < 1) exit ("<p>Chyba... nebyl nalezen font.");
if ($pocet_fontu < $pocet_znaku) exit ("<p>Chyba... poèet znakù nesmí pøekroèit poèet fontù.");

$fontsource = array();
$fontangle = array();
srand ((float) microtime() * 10000000);
$rand_keys = array_rand ($TTFCHOICES, $pocet_znaku);
for ($i = 0; $i < $pocet_znaku; $i++) {
$fontsource[] = $ttfdirectory . $TTFCHOICES[$rand_keys[$i]];
$fontangle[] = rand(-30,30);
}
for ($i = 0; $i < $pocet_znaku; $i++) {
imagettftext($im, 46, $fontangle[$i], 15+50*$i, 56+rand(-10,+10), $barva_font, $fontsource[$i], $kkod_session[$i]);
if ($test == 1) {
imagestring($im, 10, 5, 100+20*$i, $kkod_session[$i] . " " . $TTFCHOICES[$rand_keys[$i]], $barva_font);
}
}
nečetl jsem tvůj zdroj, ale zde:

http://jaj.wz.cz/blog/jak-na-zabezpeceni-formularu-pred-roboty

je můj jednoduchoučký postup na to, co zřejmě potřebuješ a normálně mi to tu funguje (viz odkaz dole v článku na hotový skript)
Myslím, že problém je v tom, že špatně generuješ pole $fontsource. V některých prvcích není korektní odkaz na soubor s existujícím fontem. Skript potom nemůže font najít a havaruje.

Nechej si to pole vypsat před imagettftext příkazem print_r($fontsource)

Důvodem bude, že readdir vrací také . a .. z adresáře a ty je bereš jako názvy fontů. Tyto položky musíš vyeliminovat.

Jinak souhlasím z Džej Árem, že je to dělo na vrabce.
Děkuji mockrát za rady a kritiku :) Myslím, že problém byl v nevhodných fontech a taky asi v ukládání souborů ttf v ASCII módu.