Imagettftext probleme

Hallo. Ich habe 2 Probleme mit der Funktion imagettftext:
aber zuerst der code von der bilddatei:

<?php header("Content-type: image/png");<br />$art = $\_GET[art];
$string = $\_GET[text];
$im = imagecreatefrompng("nav\_bg.png");
if ($art==1) {
 $color = imagecolorallocate($im, 255, 0, 0);
} elseif ($art==2) {
 $color = imagecolorallocate($im, 255, 140, 0);
} elseif ($art==3) {
 $color = imagecolorallocate($im, 255, 255, 0);
}
Imagettftext ($im, 13, 0, 0, 29.25, $color, "fonts/arial.ttf", $string);
imagepng($im);
imagedestroy($im);
?\>

1.: Umlaute Darstellen
Wenn ich als Text z.B. „Für“ eingebe, wird wenn man die Bilddatei direkt aufruft alles richtig dargestellt. Aber wenn ich Das Bild auf eine andere Seite mit einbinde, Wird anstatt ü nur ein kleines quatrat angezeigt. Wie kann ich das entfernen?

2.: Den Text zentrieren
Ich will auch noch den Text, der ausgegeben wird auf dem bild zentrieren. Ich hab zwar schon in google viel gefunden, verstehe das aber nicht.

Schonmal Danke im Voraus!!!

mfG, Nino

Moin!

Hallo. Ich habe 2 Probleme mit der Funktion imagettftext:
aber zuerst der code von der bilddatei:

<?php :header("Content-type: image/png");
$art = $\_GET[art]; $string = $\_GET[text]; $im = imagecreatefrompng("nav\_bg.png"); if ($art==1) { $color = imagecolorallocate($im, 255, 0, 0); } elseif ($art==2) { $color = imagecolorallocate($im, 255, 140, 0); } elseif ($art==3) { $color = imagecolorallocate($im, 255, 255, 0); } Imagettftext ($im, 13, 0, 0, 29.25, $color, "fonts/arial.ttf", $string); imagepng($im); imagedestroy($im); ?\> 1.: **Umlaute Darstellen** Wenn ich als Text z.B. "Für" eingebe, wird wenn man die Bilddatei direkt aufruft alles richtig dargestellt. Aber wenn ich Das Bild auf eine andere Seite mit einbinde, Wird anstatt ü nur ein kleines quatrat angezeigt. Wie kann ich das entfernen?

Das Problem dürfte am Browser liegen. Du hast die URL ja in deinem HTML-Code versteckt () und das sort dann dafür, dass - in Abhängigkeit des Browsers und der verwendeten Codierung - der Umlaut in der URL durch eine bestimtme Codierung für URLs ersetzt wird. Wie das genau aussieht kann ich dir leider nicht sagen, aber vielleicht solltest du mal folgende Funktion in Betracht ziehen:

http://de2.php.net/manual/de/function.urldecode.php

2.: Den Text zentrieren
Ich will auch noch den Text, der ausgegeben wird auf dem bild
zentrieren. Ich hab zwar schon in google viel gefunden,
verstehe das aber nicht.

Schonmal Danke im Voraus!!!

mfG, Nino

Hierfür dürfte dir http://de2.php.net/manual/de/function.imagettfbbox.php weiterhelfen, denn damit kannst du die Größe des Bereichs ermitteln lassen und den Text dann entsprechend manuell ausrichten. Scheinbar gibt es keine andere Möglichkeit, aber das sollte dann ja auch funktionieren.

Danke!
Das mit dem imagettfbbox hat geklappt!
Aber urldecode nicht. Ich habe es aber anders hingekriegt:
Anstatt utf-8 hab ich die Webseiten auf ISO-8859-1 gestellt. jetzt funzt alles

mfg, Nino

Wenn UTF-8 das Problem war, dann kannst du das auch mit den mbstring-Funktionen von PHP lösen, sofern das auf deinem Server zur Verfügung steht. Genauere hierzu findest du in der PHP-Hilfe auf der offiziellen Seite.

Ich würde dir jedenfalls raten nicht von UTF-8 zu wechseln, denn dann musst du alle Umlaute manuell durch den zugehörigen HTML-Code ersetzen, das ist mit UTF-8 nicht mehr nötig und daher ratsamer. Musst aber letztendlich du wissen. Gehen tut beides.