mam w sumie prawie dobrze działający skrypt który usuwa z obrazka białe plamki o wielkości 1 px niestety jeśli trafi się większa plamka powiedzmy kwadrat 2x2 czyli 4 pixele to teoretycznie ma on te pixele pominąć i iść dalej w poszukiwaniu pojedynczych pixeli, w rzeczywistości obcina cześć tego większej plamki. I nie wiem dlaczego może to przez złe użycie continue ? bo obcina je w osi Y. Nie wiem czy dobrze wytłumaczyłem problem w razie niejasności postaram się sprostować.
<? $im = imagecreatefromjpeg('szum1.jpg'); $szerokosc = imagesx($im); $wysokosc = imagesy($im); for ($x=0; $x<$szerokosc; $x++) { for ($y=0; $y<$wysokosc; $y++) { $c = imagecolorsforindex($im, imagecolorat($im, $x, $y)); $kolorSuma = $c['red']+$c['green']+$c['blue']; if ($kolorSuma >=720) { for ($xx=$x-1; $xx<$x+2; $xx++) { for ($yy=$y-1; $yy<$y+2; $yy++) { $cc = imagecolorsforindex($im, imagecolorat($im, $xx, $yy)); $kolorSuma1 = $cc['red']+$cc['green']+$cc['blue']; if ($kolorSuma1 >720) { if ($zliczonePixele > 2){ continue 3; } } } } } foreach($wspPixeli as $wartosci) { imagesetpixel($im, $wartosci[0], $wartosci[1], imagecolorallocate($im, 0, 0, 0)); } } } imagejpeg($im, '', 100); imagedestroy($im); ?>
z góry dziękuję za pomoc
Chciałbym odświeżyć temat gdyż udało mi się rozwiązać kilka problemów ale napotkałem na inny który opisuje wyżej.