Tach.
... die ein Wasserzeichen auf dieses Bild kopiert und dann unabhängig vom Ursprungsformat (hier angenommen, es ist eine jpeg-Datei) eine png-Datei ausgibt.
Oha, das kann u. U. ganz schon auf die Dateigröße gehen ...
function wasserzeichen ($bild) {
...
// Bild anzeigen
imagepng($img);
return $img;
// Speicher freigeben
imagedestroy($img);
}
Die letzte Zeile deiner Funktion wird nicht ausgeführt, da du in der Zeile davor wasserzeichen() mit return bereits verläßt. Das nur am Rande.
> Meine Idee: Ha, kein Problem, ich modifiziere die Funktion wasserzeichen() so, dass ich vor der Ausgabe von HTML-code eine png-Datei erzeuge, und diese kann ich dann an benötigter Stelle wie gewünscht bearbeiten und als Bild mit Wasserzeichen ausgeben...
Nein, du verwechselst da etwas. Mit einer Angabe wie
<img src="blablupp.png" alt="Bild" />
veranlaßt du den Browser, vom Server die Datei blablupp.png anzufordern. Das passiert also \*nach\* dem Ausliefern der HTML-Datei.
Wenn du deine Waaserzeichen-Funktion in ein separates Skript wasserzeichen.php steckst, kannst du dieses z. B. mit
<img src="wasserzeichen.php?img=blablupp.png" alt="Bild" />
aufrufen. Deine Funktion liefert die Datei nach den Modifikationen dann mit dem entsprechenden Header aus und alles ist in Butter. Daß du die Originalbilder vernünftig wegschließt versteht sich von selbst.
Um das Bild mit Wasserzeichen nicht bei jedem Ausliefern der Bilddatei neu generieren zu müssen, bietet sich ein Caching-Mechanismus an. Der überprüft, ob die modifizierte Datei bereits existiert. Ist dies nicht der Fall, erzeugt und speichert er sie. Beim nächsten Aufruf muß dann nur noch die bereits modifizierte Bilddatei ausgeliefert werden.
--
Once is a mistake, twice is jazz.