Укажите точку, которая, как известно, находится внутри многоугольника.
Знайте «граничный цвет» (в данном случае черный).
recurrsiveFill(Pixel p, Color fill, Color bound) {
p.setColor(fill);
if(p.left.color != bound && p.left.color != fill)
recurrsiveFill(p.left , fill, bound);
if(p.right.color != bound && p.right.color != fill)
recurrsiveFill(p.right, fill, bound);
if(p.up.color != boun d&& p.up.color != fill)
recurrsiveFill(p.up, fill, bound);
if(p.down.color != bound && p.down.color != fill)
recurrsiveFill(p.down, fill, bound);
}
Вы можете адаптировать это по мере необходимости к вашим конкретным потребностям.
Это работает для любой заливки для полностью ограниченной формы. Вы также захотите включить специальные условия (например, края изображения).