Porkx
Grünschnabel
Hallo, ich bin hier ziemlich am verzweifeln, also ich versuche aus einem bild verschiedene Pixelfarben zu finden. So nachdem er mir eine Pixelfarbe gefunden hat, möchte ich dass er mir sagt, wie oft die Farbe vorkommt. Aber das bekomme ich nicht wirklich hin. Also z.b.
Hier zeigt er mir z.b an so die erste Pixelfarbe die er gefunden hat ist "farbe ist: rot=11 gruen=13 blau=53" .
Jetzt versuch ich, dass er mir sagt, wie oft die Farbe in dem Bild vorkommt.
Hierbei läuft das aber dann so, dass wenn die Farbe im Bild vorkommt, sagt er mir ist wahr und sagt aber gleichzeitig alle 59.000 Pixel seien diese Farbe.
Ich hatte mal einen anderen Versuch vorher gestartet, bei dem ich gesagt hatte vergleiche die beiden arrays
Das hat auch meiner Meinung nach gepasst, solang ich diesen Vergleich ausserhalb der forschleife gemacht habe.
Ich komm irgendwie nicht dahinter, wie ich da wo was anbringen muss, falsch mache. Habe soviel gegooglet und soviele verschiedene Varianten mal ausprobiert aber es will nicht =( .
PHP:
for ($red=0; $red<255; $red++) {
for ($green=0; $green<255; $green++) {
for ($blue=0; $blue<255; $blue++) {
$ind = imagecolorexact($src,$red,$green,$blue);
if($ind != -1) { echo "farbe ist: rot=".$red." gruen=".$green." blau=".$blue." \n";
break 3;}
}}}
Hier zeigt er mir z.b an so die erste Pixelfarbe die er gefunden hat ist "farbe ist: rot=11 gruen=13 blau=53" .
Jetzt versuch ich, dass er mir sagt, wie oft die Farbe in dem Bild vorkommt.
PHP:
for($b=0;$b<=$breitex;$b++)
{
for($h=0;$h<=$hoehey;$h++)
{
if(imagecolorexact($src,11,13,53) != -1) { $i++; }
}
}
echo $i;
?>
Hierbei läuft das aber dann so, dass wenn die Farbe im Bild vorkommt, sagt er mir ist wahr und sagt aber gleichzeitig alle 59.000 Pixel seien diese Farbe.
Ich hatte mal einen anderen Versuch vorher gestartet, bei dem ich gesagt hatte vergleiche die beiden arrays
PHP:
<?php
$image='Pinguin.png';
$src = imagecreatefrompng($image);
$size=getimagesize($image);
echo "<img src=Pinguin.png></br>";
$breitex= $size[0]-1;
$hoehey= $size[1]-1;
?></br><?php
$rgb=imagecolorat($src,$breitex,$hoehey);
$rgbarray=imagecolorsforindex($src,$rgb);
echo var_dump($rgbarray);
?></br><?php
$vergleichx= 123;
$vergleichy= 112;
$vergleichrgb=imagecolorat($src,$vergleichx,$vergleichy);
$vergleicharray=imagecolorsforindex($src,$vergleichrgb);
for($b=0;$b<=$breitex;$b++)
{
for($h=0;$h<=$hoehey;$h++)
{
$schleifergb=imagecolorat($src,$b,$h);
$schleifearray=imagecolorsforindex($src,$schleifergb);
if(var_dump(array_diff($schleifearray,$vergleicharray))==0)
{
echo Passt;
}?></br><?php
}
}
Das hat auch meiner Meinung nach gepasst, solang ich diesen Vergleich ausserhalb der forschleife gemacht habe.
Ich komm irgendwie nicht dahinter, wie ich da wo was anbringen muss, falsch mache. Habe soviel gegooglet und soviele verschiedene Varianten mal ausprobiert aber es will nicht =( .