Forum: PC-Programmierung compare pixels on an image (PHP)


von berne (Gast)


Lesenswert?

Ich möchtet gerne 10 mal 10 Pixel eines JPG Bildes mit einem 
vorgegebenen Wert eines Standardbildes vergleichen.

Dazu muss ich die Bilder von einer Webseite laden und ausgehend vom 
Startpixel 10 Zeilen, jeweils 10 Pixel nach rechts vergleichen.

Zum Vergleichen würde ich das hier verwenden:
1
<?php 
2
$image = new Imagick('testimage.jpg'); 
3
4
$x = 1; 
5
$y = 1; 
6
$pixel = $image->getImagePixelColor($x, $y); 
7
?>

Stimmt einer der Werte nicht mit dem Standardbild überein, soll eine 
Variable gesetzt werden.

Wie setze ich das am einfachsten in PHP um ohne jedes der 200 Pixel 
einzeln zu programmieren?

Danke

von der mechatroniker (Gast)


Lesenswert?

Gerüchteweise habe ich gehört, dass PHP auch for-Schleifen kann.

von Der E. (rogie)


Lesenswert?


: Bearbeitet durch User
von berne (Gast)


Lesenswert?

Ok, klar, ich sehe leider grad nicht wie ich das miteinander 
verschachteln soll. Ich muss ja pixelweise zwei Bilder vergleichen und 
dabei sowohl die Spalte als auch die Zeile erhöhen.

von Der E. (rogie)


Lesenswert?

berne schrieb:
> Ok, klar, ich sehe leider grad nicht wie ich das miteinander
> verschachteln soll. Ich muss ja pixelweise zwei Bilder vergleichen und
> dabei sowohl die Spalte als auch die Zeile erhöhen.
1
<?php 
2
$image = new Imagick('testimage.jpg'); 
3
4
for ($x = 0; $x < 10;$x++)
5
{
6
  for ($y = 0; $y <10;$y++)
7
  { 
8
    $pixel = $image->getImagePixelColor($x, $y); 
9
 
10
    //den Rest bitte selber machen
11
  }
12
}
13
?>

von Dominik R. (vision)


Lesenswert?

$image1 = new Imagick('testimage1.jpg');
$image2 = new Imagick('testimage2.jpg');

$variable = false;

for($x = 0; $x < 10; $x++){
  for($y = 0; $y <10; $y++){
    $pixel1 = $image1->getImagePixelColor($x, $y);
    $pixel2 = $image2->getImagePixelColor($x, $y);
    if($pixel1 != $pixel2)
        $variable = true;
  }
}

von berne (Gast)


Lesenswert?

Danke, werd ich mal versuchen. Wie ist das eigentlich, wird das Bild 
jetzt 100 mal heruntergeladen oder kann ich das zwischenspeichern?

von Dominik R. (vision)


Lesenswert?

Das Bild wird 1x herunter geladen, bevor du in die Schleife gehst.

von Peter II (Gast)


Lesenswert?

berne schrieb:
> Wie ist das eigentlich, wird das Bild
> jetzt 100 mal heruntergeladen oder kann ich das zwischenspeichern?

woher soll es denn heruntergeladen werden? Und warum, wird denn der code 
zum herunterladen 100mal ausgeführt?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.