Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

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)..

Stefan Nagtegaal