Zwei Bilder auf Pixelbasis vergleichen

Rente

Mitglied
Hey ihr.
Ich habe ein Problem, das mir echt zu schaffen macht, da ich mich in der Materie noch so gar nicht auskenne.
Wie schaffe ich es, dass ich ein Bild mit einem Anderen vergleiche und mir dann ausgegeben wird, welche Pixel sich verändert haben. Das Bild wird vom Server generiert, und hat immer dieselbe Größe.
e16051c59.jpg
(Auf die Grafik klicken, um sie zu vergrößern)
Hierbei verändern sich nur einige der weißen Punkte. Und diese pixelveränderung würde ich gerne feststellen.
Ich hoffe, dass das möglich wäre.
Ich hoffe, dass das ganze nicht über eine Datenbank laufen muss, denn 600*600=360.000 Einträge kostet echt derbst viel Zeit. Die Veränderung sollte sich ja nach Möglichkeit in einen Array schreiben lassen.
 
Lade beide Bilder mit geeigneten imagecreatefrom*-Funktionen, durchlaufe diese dann parallel Pixel für Pixel, ermittle die jeweilige Farbewerte mittels imagecolorat und vergleiche die Werte.
 
Ich habe jetzt immerhin schon einmal ein paar Anhaltspunkte.
Aber könnte das etwas genauer gehen. Wie vergleiche ich das und wie lässt man so was Pixel für Pixel durchlaufen?
 
Hier ein Ansatz:
PHP:
$img1 = imagecreatefrom…;
$img2 = imagecreatefrom…;

for ($y=0; $y<600; $y++) {
    for ($x=0; $x<600; $x++) {
        if (imagecolorat($img1, $x, $y) !== imagecolorat($img2, $x, $y)) {
            // unterschiedlich
        }
    }
}
 
Wenn du GIMP hast dann gibt es sicherlich auch eine Möglichkeit, dass per Batch zu lösen. Man überlagert zwei Bilder und wählt nicht eine normale "Transparenz" sondern Differenz. Wenn du also die Möglichkeit hast GIMP auszuführen auf dem Server solltest du diesen Weg wählen, da er bestimmt um einiges schneller ist.
 
Okay, vielen Dank für die Hilfe schon mal. Ich werde mich da jetzt dransetzen und bitte seit mir nicht böse, ich kenne mich mit dem Thema Bilder+PHP noch so gar nicht aus und wusste auch gar nicht, wo ich ansetzen sollte.
Das mit dem GIMP ist zwar eine gute Idee, aber ich hätte keine Ahnung, wie das ausführen sollte, da es ein Script sein soll, wo ein Bild hochgeladen wird und dieses Bild direkt via PHP mit einem anderem Bild, welches schon auf dem Server liegt verglichen werden soll. Und wenn man dann noch GIMP irgendwie starten müsste, würde dies sicherlich auch noch länger dauern. Aber sehr lieb gemeint.
Falls noch Fragen auftreten, lasse ich diesen Threat einfach noch mal offen.
 
Zurück