Bild ändern (imagesetpixel) persistent?

klanawagna

Erfahrenes Mitglied
Hallo! Ich habe ein png, auf welchem ich mit imagesetpixel() einzelne Pixel verändere. Nun will ich, dass das Bild mit dieser Änderung persistent gespeichert wird!
Wie mache ich das? Wie mache ich das, damit mehrere User gleichzeitig ein Pixel ändern können und sich nicht gegenseitig überschreiben? Danke!!

lg
klanawagna
 
Moin,

ich würde mal sagen, da müsstest du die Koordinaten der bereits geänderten Pixel irgendwo speichern(DB) und vor der Änderung prüfen, ob da schon wer herumgekritzelt hat.
 
xD Das habe ich. Die Pixel sind in eine Datenbank gespeichert. Ja, es würde funktionieren, dass ich jedes mal wenn wer auf die Seite kommt die Pixel nach der Datenbank einfärbe, aber das ist irgendwie performancemäßig - nicht so gut sag ich mal, es geht da um größere Anzahlen im 6-Stelligen Bereich.

lg
 
Nö, du musst ja nicht das Bild bei jedem Zugriff einfärben :-)

Du musst nur jedesmal, wenn ein User einen Pixel ändern will, in der DB nachschauen, ob dieser Pixel schon geändert wurde.
Wenn nein, änderst du ihn, schreibst die Koordinaten in die DB und speicherst das Bild mit dem gänderten Pixel.

Alternativ könntest du auch eine Kopie des Originals als "DB" missbrauchen.
Du schaust nach, ob der zu ändernde Pixel im Original die selbe Farbe hat wie in der aktuellen geänderten Version...falls ja, setzt du den Pixel.
 
Ne Menge Abfragen pro Strich :D Wie sieht es aus, wenn Du ein "quasi" Original im Layer darunter hinlegst, und die Leute in ein "leeres" png darüber malen, jedesmal wenn sie absetzen (Mausklick aus) wird es in das Originalbild reingespeichert..

mfg chmee
 
So, neues Problem tut sich hier auf: Wie speichere ich eine Bildressource, also was bei imagecreatefrompng() herausbekomme, in eine Datei?

fwrite() benötigt einen Filepointer, da komm ich mit der Ressource nicht weit!

lg
Niko
 
Zurück