Valenok
Новичок
удаление пикселей с картинки
Осваиваю gd
Есть картинка белого цвета
На ней местами разбросаны чёрные пиксели.
Как их перекрасить в белые?
Делал так:
Но чтото не получается.
Не удаляются отдельные пиксели.
Ошибок не выдаёт, кроме
Notice: Undefined offset: -1
даже если повторить код несколько раз, всё равно не удаляется.
В чём заключается проблема, подскажите пожалуйста.
Осваиваю gd
Есть картинка белого цвета
На ней местами разбросаны чёрные пиксели.
Как их перекрасить в белые?
Делал так:
PHP:
<?
// создание
$newwidth = 120;
$newheight = 30;
$thumb = imagecreatetruecolor($newwidth, $newheight);
for($i=0;$i<200;$i++)
imagesetpixel($thumb,rand(0,$newwidth),rand(0,$newheight),$black);
// Получается картинка
// Предположим что фон белый, пиксели чёрные.
// Я сократил код немного
// Далее мне нужно удалить те пиксели которые не соприкасаются с другими
// Тоесть пиксели которые сами по себе
// пиксели картинки в массив
for ($i = 0; $i < $newwidth; $i++){
for ($j = 0; $j < $newheight; $j++){
$gu[$i][$j] = (imagecolorat ($thumb, $i, $j));
}
}
// Удаляем отдельные от мира пиксели
for ($a=0; $a<count($gu); $a++){
for ($b=0; $b<count($gu[$a]); $b++){
if($gu[$a][$b]==0) continue;
if(@$gu[$a-1][$b-1]>0 && @$gu[$a-1][$b]>0 && @$gu[$a-1][$b+1]>0 && @$gu[$a][$b-1]>0 && @$gu[$a][$b+1]>0 && @$gu[$a+1][$b+1]>0 && @$gu[$a+1][$b-1]>0 && @$gu[$a+1][$b]>0){ imagesetpixel($thumb,$a,$b,$white); $gu[$a][$b]=0; }
}
}
Не удаляются отдельные пиксели.
Ошибок не выдаёт, кроме
Notice: Undefined offset: -1
даже если повторить код несколько раз, всё равно не удаляется.
В чём заключается проблема, подскажите пожалуйста.