gd und Header-Information ?

shrewm

Mitglied
Hallo!
Ich habe zwar schon alles durchsucht, allerdings hat mir nicht wirklich irgendwas von dem was ich gefunden habe weitergeholfen. Folgendes:

Ich möchte in einer Tabelle ein Bild mit der gd-Extension erstellen. Allerdings mache ich das so:
PHP:
function create_text_image($var)
{
	$text = $var;
	// Bild erzeugen und ausgeben
	header ("Content-type: image/png");

	// 56,16 ist die Groesse in Pixel
	// $im = imagecreate (56,16) or die ("Cannot Initialize new GD image stream");
	$im = imagecreatetruecolor (56,16) or die ("Cannot Initialize new GD image stream");

	// Schwarzer Hintergrund
	$background_color = imagecolorallocate($im, 120, 10, 160);

	// gelber Text
	$text_color = imagecolorallocate($im, 255, 255, 0);

	// genaueres zu Funktion auf php.net
	imagestring($im, 5, 0, 0, $text, $text_color);

	// PNG Bild erzeugen und senden
	imagepng($im);

	// Bild auf dem Server loeschen
	imagedestroy($im);
}
?>
Da nun aber beim Tabellen erstellen schon etwas gesendet/empfangen wird, bekomme ich im Browser den Fehler
Code:
"Cannot modify header information - headers already sent by
(output started at d:\programme\Apache\Apache\htdocs\...\style.php:2) in 
d:\programme\Apache\Apache\htdocs\...\functions.php on line 69"
Gibt es eine Möglichkeit einen Ersatz für
Code:
header ("Content-type: image/png");
in der Image-Funktion zu benutzen? Wäre dankbar für jede Hilfe.

MfG
shrewm
 
Style.php:
Code:
<style type="text/css">
<!--
 .navigation { color: black; font-family: verdana; font-size: 11px }
 .scnd { color: silver; font-family: verdana; font-size: 11px }
[etc]
--!>
</style>
Allerdings ist es doch so, dass selbst wenn ich die Style rausnehmen würde, vor der Ausgabe des Bildes doch so oder so schon die Tabelle ausgegeben wird. Also hätte ich doch theoretisch immer das Header-Problem oder hab ich da was falsch verstanden?
 
Ich denke, wenn du das Script in eine eigene Datei (z.B. bild.php) auslagerst, könntest du es so machen:

bild.php:
PHP:
$text = $HTTP_GET_VARS["var"];
// Bild erzeugen und ausgeben
header ("Content-type: image/png");
//usw. wie zuvor...
Dann kannst du in der Tabelle das Bild so einbinden:
HTML:
<img src=bild.php?var=textfuerbild>
 
Zurück