我目前正在为锻炼创建一个小涂装程序。现在我正在尝试使用油漆桶工具,或者换句话说是填充洪水。有趣的是:如果必须填充的像素数量很少,一切正常。如果填充像素的仇恨数量更高,它会给我一个SO异常。这是我的代码:
private void FloodFill(Bitmap picture, int x, int y)
{
if (x <= 0 || y <= 0 || x >= DrawingPanel.Width || y >= DrawingPanel.Height)
{
return;
}
if (picture.GetPixel(x, y) != löschFarbe)
{
return;
}
if (picture.GetPixel(x, y) == löschFarbe)
{
picture.SetPixel(x, y, ColorButton.BackColor);
}
FloodFill(picture, x + 1, y);
FloodFill(picture, x, y + 1);
FloodFill(picture, x - 1, y);
FloodFill(picture, x, y - 1);
FloodFill(picture, x + 1, y + 1);
FloodFill(picture, x - 1, y + 1);
FloodFill(picture, x + 1, y - 1);
FloodFill(picture, x - 1, y - 1);
}
“löschFarbe”是单击的颜色(将被其他颜色删除/覆盖)
发生错误:如果我想填写完整的图片或大空间,我在这里收到错误:
if (picture.GetPixel(x, y) != löschFarbe)
{
return;
}
任何人都知道如何解决这个问题?
BTW这是我的节目图片: