Zeichnen in PHP

jackie05

Erfahrenes Mitglied
Hallo,
ich habe folgendes problem und zwar erstelle ich eine Grafik und zeichne dann auf das erstellte Grafik, danach kann ich keine befehle mehr verwenden wie echo u.s.w.
da ich Content-type auf png gesetzt habe:
PHP:
header ("Content-type: image/png");

Wie kann ich das problem beheben?

Hier ist mal mein Code:
PHP:
<?php

header ("Content-type: image/png");
//$mein_bild = ImageCreate (33, 33);
$mein_bild = ImageCreateFromPNG("img/img01.png");
for ($y=0; $y<7; $y++) {
	for ($x=0; $x<7; $x++) {
		$rot = ImageColorAllocate ($mein_bild, 255,0,25);
		imageFilledRectangle($mein_bild,3+($x*3)+(($x/1)*1),3+($y*3)+(($y/1)*1),3+($x*3)+(($x/1)*1)+2,3+($y*3)+(($y/1)*1)+2,$rot);
	}
}
ImagePNG ($mein_bild);

//echo "Test"; //funktioniert dann nicht mehr, wenn ich echo verwende

?>

Ich danke euch schonmal für die Hilfe.

MfG
 
@saftmeister:

Das wird nicht funktionieren, da [phpf]imagepng[/phpf] bereits Daten ausgibt und somit einen [phpf]header[/phpf]-Aufruf unmöglich macht.

@jackie05:

Ich glaube schon, dass du noch z.B. [phpf]echo[/phpf] verwenden kannst. Schau mal in den Seitenquelltext ganz unten, da müsste es meiner Menung nach stehen.​
 
@ComFreek: Natürlich hast du recht. Eindeutig zu früh heute ;-)

Dennoch bleibt die Frage, warum echo bennötigt wird. Wenn es für Debugging gebraucht wird, kann ich trigger_error() empfehlen, und dann das Server-Errog-Log kontrollieren.
 
Naja, jedenfalls macht das Echo wirklich wenig Sinn, wenn es mit einem image-header ausgegeben wird. Laß Dir doch debug-infos auch ins Bild schreiben ;)

mfg chmee
 
Vielen Dank für die antworten.
Es geht darum, das ich per mysql eine Highscoreliste lade und in einer Spalte von <table> möchte ich dann das gezeichnete Bild ausgeben.
Gibt es Vielleicht eine andere möglichkeit, wenn ich jetzt 2 Bilder habe, dass ich dann das 2te Bild auf das erste Bild drauf lege bzw. drauf zeichne und dass dann in der Tabelle ausgebe?
Beispiel:
PHP:
<?php
echo "<table>
<tr>
<td width='50'>Test-Bild:</td>
<td width='50'>$img</td>
</tr>
</table>";
?>

Danke euch schonmal..

MfG
 
Mit deinem oben genannten Quellcode für die Bild-Generierung baust Du nur das Bild auf. Dieses musst Du in einem <img>-Element in den eben genannten HTML-Code einbinden.

HTML:
<table>
<tr>
<td width='50'>Test-Bild:</td>
<td width='50'><img src="bild.php" alt="" /></td>
</tr>
</table>

bild.php enthält dann den o.g. PHP-Code.
 
Nebenbei: Zudem ist der Attributwert 50 zu width falsch. Es gehört eine Einheit dazu, also zB % oder px. Besser noch, so etwas (wie üblich) in die CSS auszulagern.

mfg chmee
 
Genau das habe ich gemeint, vielen Dank für die Hilfe.

Edit: @chmee ich weiss, das habe ich nur mal per Hand hier ins Forum geschrieben wie ich es meine, meine Tabelle sieht ja in wirklichkeit viel anders aus.

MfG
 
Zuletzt bearbeitet:
Zurück