Lucas: Bildausgabe über imagepng funktioniert nicht wie gewünscht

Hallo zusammen,

momentan arbeite ich an einem Projekt, dass dynamisch generierte Bilder enthalten soll. Ich habe mich also mit den image-Funktionen von PHP auseinandergesetzt. Bisher habe ich die Ausgabe zunächst in einer Datei abgelegt und diese über ein <img...> angezeigt. Klappte vom Prinzip ganz gut, nur nach einer Änderung des Bildes musste ich den Browser (IE) immer zwei mal refreshen, bis er die Änderungen am Bild angezeigt hat.
Zunächst habe ich im HTML-Header Angaben zum Cache gemacht, d.h. die Seite sollte laut Header immer neu geladne werden. Das hat allerdings keine Wirkung gezeigt.
Also wollte ich dazu übergehen, die Ausgabe aus einer seperaten PHP-Datei direkt vorzunehmen. Dabei kam (vereinfacht) folgendes raus:

// index.php
<?php
echo '<img src="display.php" width="500" height="500" border="0" alt="Testbild">';
?>

// display.php
<?php
header("Content-type: image/png");

$display = imagecreatefrompng('void_500.png');   // 500x500 px leeres Bild laden
$over = imagecreatefrompng('test.png');          // Testbild laden

ImageCopy($display, $over, 0,0,0,0,50,100);      // die fragliche Zeile ...?
imagepng($display);
?>

Geht prinzipiell auch, allerdings nicht mehr, sobald die Ausmaße des zu Kopierenden Bildausschnittes vergrößert werden (also die Werte 50 und 100 erhöht werden). Ich vermute nun, dass das Script zu langsam ist, wenn zu viel kopiert wird - also der Browser das Bild sofort erwartet, aber das Script natülich eine gewisse Rechenzeit benötigt.
Ziel ist es, selbst komplizierte Berechnungen im Bild vorzunehmen, das könnte also schon recht lange dauern...

Als ich dieses Problem festgestellt hatte, dachte ich zunächst an die Lösung, das Bild wie zuvor zunächst als Datei zu speichern, allerdings nach jeder Änderung mit einer inkrementierten Nummer im Dateinamen. Dadurch sollte es wohl jedes Mal komplett neu geladen werden?! Das finde ich aber nicht so zufriedenstellend, da ja unnötiges Zwischenspeichern und Speicherzugriff erfolgt. Allerdings wäre es mir lieber so, als überhaupt nicht.

Weiss jemand, wie entweder das Bild immer neu geladen wird, oder besser, wie die Ausgabe aus der PHP-Datei heraus funktionieren kann?

Bin für jeden Hinweis oder Lösungsansatz dankbar!

Mit freundlichen Grüßen, Lucas

--
selfcode: sh:( fo:| ch:? rl:° br:& n4:° ie:| va:| de:< zu:) fl:| ss:) ls:< js:|
  1. echo $begrüßung;

    Geht prinzipiell auch, allerdings nicht mehr, sobald die Ausmaße des zu Kopierenden Bildausschnittes vergrößert werden (also die Werte 50 und 100 erhöht werden). Ich vermute nun,

    Vermutungen sind schön und gut, die Ursache ermitteln wäre besser. Wie genau definiert sich bei dir "geht nicht mehr"? Gibt es irgendwelche Fehlermeldungen von PHP? Rufe die URL zu display.php direkt auf und lass dir den Quelltext anzeigen, bzw. lass mal die header()-Angabe weg. (Browser merken sich gelegentlich/immer den Mime-Type einer Ressource. Wenn du den wechselst muss ggf. der Browser neu gestartet werden oder Cache leeren oder beides.)

    echo "$verabschiedung $name";