Moja fukcja miala dzialac tak, ze zczytuje kolor 1go pixela, zapisuje w tablicy, potem, zeby nie sprawdzac kazdego pixela, bo trwalo by to wieki, przeskakuje np. o 70 pixeli w lewo, zczytuje pixel, porownuje jego kolor ze wszystkimi juz zapisanymi, jesli jest podobny (fukcje "podobny" w ktorej ustawia sie tolerancje dla pixeli znalazlem gdzies w sieci) to go olewa, jesli nie, to zapisuje do tablicy, w ten sposob na koniec powinienem miec tablice w ktorej przynajmniej w przyblizeniu mamy zapisane (hex) kolory wystepujace na obrazku. dalo by sie jakos to "uzdatnic" zeby dzialalo? (na moim serverze [superhost] mam maxymalny czas wykonywania skryptu 8s., paranoja, dlatego kozystam z servera znajomego do testow, docelowo jendak chcialbym zeby to smigalo tez u mnie).
<?php function rgb2hex( $r, $g, $b ) { } ########## function podobny($pix1, $pix2, $tol=30) { for($i=0,$podobne=true;$i<3;$i++) if(($pix1[$i]+$tol<$pix2[$i]) || ($pix1[$i]-$tol>$pix2[$i])) $podobne=false; return $podobne; } $im = imagecreatefromjpeg('foto.jpg'); $coIle = 70; for ($y=1; $y+20<$size[1]; $y+20){ for ($x=1; $x+$coIle<$size[0]; $x=$x+coIle){ $color_index = imagecolorat($im, $x, $y); $colors = imagecolorsforindex($im, $color_index); $hexcolor=rgb2hex($colors[red], $colors[green], $colors[blue]); $tablicaKolorow[0]=$hexcolor; } else { $pixelPodobny = podobny($tablicaKolorow, $hexcolor); if (!($pixelPodobny)) { $tablicaKolorow[]=$hexcolor; break; } } } } } ?>