PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GD2 & FreeType --> ttf


Freakie
15.04.2003, 16:59:27
<?
header("Content-type: image/png");
$image = imagecreatefrompng("blanco.png");
$text_color = imagecolorat($image, 240, 200);
imagettftext($image, 64, 0, 30, 70, $text_color, "arial.ttf", $name." ist doof.");
imagepng($image);
imagedestroy($image);
?>

Hi, oben habe ich mal den Code dieser PHP-Datei (http://www.freaknfantasy.forum-hosting.info/doof/?name=test) angegeben. Aber irgendwie funzt die imagettftext-Funktion nicht. Laut PHPinfo (GD Support -> enabled; GD Version -> bundled (2.0 compatible); FreeType Support -> enabled; FreeType Linkage -> with TTF library ist ) ist GD und FreeType jedoch installiert. Woran kanns liegen? Bitte hleft mir ^^

PS: Die Fehlermeldung wird nur im IE angezeigt, Mozilla sagt "Die Grafik kann nicht angezeigt werden, da sie Fehler enthält"... Sie lautet Warning: imagettftext() [function.imagettftext]: Ã ¦ in /home/freakn/public_html/htdocs/doof/index.php on line 5

(im File das oben ist steht Line 7, da ich dort noch 2 Zeilen eingequotet habe ;))

mfg Freakie

Mr.Burns
15.04.2003, 19:06:59
Hi,

ein paar Fragen vor der Lösung:

1. wie wird denn die variable $name übergeben?

so etwa: $name = $_POST["name"];

2. warum: $image = imagecreatefrompng("blanco.png");
und nicht ImageCreate();

3. woher kommt den der scrifttyp Arial.ttf ? ;-)
stimmt der Pfad. das Progr. muß ja deine schrift
nach irgendwas formatieren?

dann

4. Tipp aus der Praxis:
Bild erzeugen -> Speicher wieder freigeben
(hast Du ja gemacht) und dann das bild nicht direkt an
den browser, sondern in html einbeten mit:
<img src='blanco.png' width='240' height='200'></img>
dann mußt du auch keine header() explizit angeben.


also:

<?PHP
$name = $_POST["name"]; /* ? */

$imageHeight = 420;
$imageWidth = 200;
$image = ImageCreate($imageWidth, $imageHeight);
$farbe_body=imagecolorallocate($image,243,243,243);
$text_color = imagecolorallocate($image,10,36,106);
imagettftext($image, 64, 0, 30, 70,
$text_color, "Arial.ttf", ".$name. ist doof.");
imagepng($image, "blanco.png");
imagedestroy($image);

print ("<html><body><img src='blanco.png' width='240' height='200' alt='Blanco'></img></body></html> ");

müsste so gehen...
... ansonsten nochmal melden
?>