在Visual Studio C#中的PictureBox中填写函数吗?

萨莎·吕彻(SaschaLüscher)

是否有任何功能可以使用某种颜色自动填充巴西的这些状态之一,但没有它们的邻居状态?因此,例如,在c#Visual Studio中,我的图片框的坐标为150x和200y。我希望从这一点开始,围绕此点的所有灰色都应变为蓝色,但应在白色边框处停止。是否有任何功能可以执行,而无需为每个状态声明特定的多边形?感谢您的所有答案!

巴西国家

王凯

在这里,我有一个想法,您可以recursion用来遍历像素并修改其颜色。

Bitmap bmp;
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
    int x = e.X;
    int y = e.Y;

    bmp = (Bitmap)pictureBox1.Image;
    ModifyMap(x, y);
    pictureBox1.Image = bmp;
}

// Recursion
private void ModifyMap(int x, int y)
{
    // the color info of gray part "Color [A=255, R=153, G=153, B=153]"
    if (bmp.GetPixel(x, y).ToString() == "Color [A=255, R=153, G=153, B=153]")
    {
        bmp.SetPixel(x, y, Color.Blue);
        ModifyMap(x + 1, y);
        ModifyMap(x - 1, y);
        ModifyMap(x, y + 1);
        ModifyMap(x, y - 1);
    }
}

测试结果

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章