Vraag & Antwoord

Webprogrammeren & scripting

PHP & GDLib: Dynamische afbeeldingen genereren

Ik ben een beetje aan het klooien in PHP en gebruik daar GDLib bij. Nu wil ik, mbv GDLib de titels van bpaalde tekstblokken laten genereren in een bepaald lettertype. Ik doe dit als volgt: In mijn thema staat: [code:1:dedf5d6493] print "<div><img src=\"themes/FreshAndFruity/title.png.php?bg=ffffff&fg=000000&pt=14&t=". $subject ."\" alt=\"". $subject ."\" /></a></div>\n"; [/code:1:dedf5d6493] Waarin $subject dus het onderwerp is, oftewel de kop van het tekstblok. Nu het bestand [i:dedf5d6493]title.png.php[/i:dedf5d6493]. De bron van title.png.php staat hieronder: [code:1:dedf5d6493] <?php header("Content-type: image/png"); header("Content-disposition: inline; filename=text.png"); $fg = $_GET["fg"]; $bg = $_GET["bg"]; $pt = $_GET["pt"]; $txt = $_GET["t"]; $h = $_GET["h"]; if (!$pt) $pt = 13; if (!$bg) $bg = "444434"; if (!$fg) $fg = "c0c1ac"; $f["r"] = hexdec(substr($fg,0,2)); $f["g"] = hexdec(substr($fg,2,2)); $f["b"] = hexdec(substr($fg,4,2)); $b["r"] = hexdec(substr($bg,0,2)); $b["g"] = hexdec(substr($bg,2,2)); $b["b"] = hexdec(substr($bg,4,2)); //$font = dirname($_SERVER['DOCUMENT_ROOT'] . $_SERVER['SCRIPT_NAME']) . "handschrift.ttf"; $font = "georgia.ttf"; $d = imagettfbbox($pt, 0, $font, $txt); /* 0 lower left corner, X position 1 lower left corner, Y position 2 lower right corner, X position 3 lower right corner, Y position 4 upper right corner, X position 5 upper right corner, Y position 6 upper left corner, X position 7 upper left corner, Y position */ $left = min($d[0], $d[6]); $bottom = min($d[1], $d[3]); $right = max($d[2], $d[4]); $top = max($d[5], $d[7]); $width = $right - $left + 1; $height = $h ? $h : $bottom - $top + 1; $img = imagecreatetruecolor($width, $height); $bg = imagecolorallocate($img, $b["r"], $b["g"], $b["b"]); $fg = imagecolorallocate($img, $f["r"], $f["g"], $f["b"]); imagefilledrectangle($img, 0, 0, $width, $height, $bg); imagettftext($img, $pt, 0, -$left, -$top, $fg, $font, $txt); imagepng($img); // imagedestroy($img); ?> [/code:1:dedf5d6493] Maar, toch blijkt het geheel niet te werken. Kijk maar op [url]http://www.frontaal-online.com[/url]. Iemand die enig idee heeft waarom? PS: De map waarin de afbeeldingen moet worden opgeslagen (/themes/FreshAndFruity/) heeft de juiste CHMOD waarde (CHMOD 777)..

Anoniem
Stefan Nagtegaal