dedlfix: Zeichnen und aufrufen

Beitrag lesen

Hi!

also das bild wird in den ordner img gespiechert

Warum willst du das Bild speichern? Wolltest du es nicht auf Anforderung hin erzeugen, ausgeben und gleich wieder vergessen?

Wenn du es speicherst, brauchst du keinen Content-Type-Header für ein Bild auszugeben, denn die Bilddaten gelangen ja nicht in die Ausgabe sondern in die Datei. Diese wird dann vielleicht von einem anderen Request angefordert. Der Apache ist so konfiguriert, dass er anhand der Dateiendung selbständig den korrekten Content-Type-Header sendet.

Es ist allerdings sehr ungünstig, eine Datei anzulegen, denn im Web können viele Anwender gleichzeitig den Server befragen, was dann zu Problemen mit der gleichzeitigen Erzeugung durch verschiedene Prozesse/Requests führen kann. Wenn das Bild für jeden Request neu generiert werden soll, ist es deshalb günstiger, es on-the-fly zu erzeugen. Das muss dann aber in dem Request passieren, der die Bildresource haben will, also das was von <img src=...> ausgelöst wird.

function zeichenguiCreateFinal($destf, $src0s, $src0, $src1, $src2, $dest, $dest1, $dest2, $dest3, $dest4, $dest5){  

//erstellen

// Output and free from memory
header('Content-Type: image/png');
imagepng($destft,$destf.'');
//imagejpeg($dest,"./img/testen.jpg");

imagedestroy($dest);
}
}
?>


>   
> ~~~php

include("zeichengui.php");  

> 	$start=new zeichengui();  
> 		$nnn = $start->zeichenguiCreate(werte);  
> 	var_dump($nnn);  
> echo '<img src="mein pfad" />';  
> 

Genau so geht es eben nicht. zeichenguiCreate() sendet via zeichenguiCreateFinal() einen Content-Type-Header für ein Bild. Der Content, den dein echo ausgibt ist aber HTML. Beides zusammen geht nicht in einem Request.

Lo!