繁体   English   中英

在Visual Studio C#中的PictureBox中填写Function?

[英]Fill in Function in PictureBox in Visual Studio C#?

是否有任何功能可以在巴西用某种颜色自动填充这些状态之一,但没有它们的邻居状态? 例如,我在 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);
    }
}

测试结果,

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM