getimagesize mit dynamisch generiertem Bild
-
Huhu Forum.
Hoffe ihr habt eine Idee für dieses Problem:
Ich erstelle mit
$text = urldecode($_GET['text']); $height = 20; $width = 10; $font = 2; $fontsize = 12; $fontfile = "ua.ttf"; $bbox = imagettfbbox($fontsize, 0, $fontfile, $text); $width = 10 + ($bbox[2] - $bbox[0]); $ihandle = imagecreatetruecolor($width, $height); $buttonbackground = imagecolorallocate($ihandle, 255, 255, 255); $buttontext = imagecolorallocate($ihandle, 0, 0, 0); imagefill($ihandle, 0, 0, $buttonbackground); imagettftext($ihandle, 12, 0, 5, 15, $buttontext, $fontfile, $text); header("Content-Type: image/jpeg");imagejpeg($ihandle, "", 80); imagedestroy($ihandle);
in einem Script eine Grafik die, wie zu erkennen, nirgens auser im Browsercache gespeichert wird - nun brauche ich aber in einem anderen Script die Höhe und Breite der Bilddatei damit ich brav die "width" und "height" werte eintrage damit der "img"-tag standardkonform bleibt.
Das habe ich bisher so versucht:
$nav_img = ini_get('include_path') . 'navigation.image.inc.php?text=' . urlencode($nav_item['text']); $nav_img_data = getimagesize($nav_img); echo '<td><a href="' . $root . $nav_item['link'] . '" title="' . uaMakeHtml($nav_item['alt']) . '" >'; echo '<img src="' . ini_get('include_path') . 'navigation.image.inc.php?text=' . urlencode($nav_item['text']); echo '" border="0" alt="' . uaMakeHtml($nav_item['alt']) . '" title="' . uaMakeHtml($nav_item['alt']) . '"'; echo ' height="' . $nav_img_data[1] . '" width="' . $nav_img_data[0] . '" />'; echo '</a></td>';
wobei mir dann im browser dies hier begegnet:
Warning: getimagesize(includes/navigation.image.inc.php?text=Kontakt) [function.getimagesize]: failed to open stream: Invalid argument in C:\xampp\xampp\htdocs\ua\includes\navigation.inc.php on line 9
klar habe ja keinen Bildnamen sondern ein Bild übergeben
Unter diesem Stapel an Fehlermeldungen werden die Bilder aber einwandfrei angezeigt - nur leider mit leeren "height"- und "width"-tags.Das ich mit dem 2fach Aufruf der Bilddatei performance verschenke ist mir klar - aber ne bessere Idee hatte ich atm noch nicht.
Das einbinden der Bildgenerierung in die gleiche Datei als function habe ich schon versucht aber da bekomme ich immer solche netten "header already sent by ... " fehler
die sich irgendwie nur durch auslagerung in eine neue Datei umgehen ließen - was mir granz recht ist so kann ich das gleiche scriptstück an diversen andern stellen auch nutzen.
Grüße und auf Hilfe hoffend
-
Du müsstest für getimagesize die URL des Bildes angeben, damit das Skript über den Parser läuft und dann auch ein Bild rauskommt. Wenn du einen lokalen Pfad angibst, versucht er direkt das Skript als Bild zu interpretieren (und nicht die Ausgabe des Skriptes)