我希望能够用给定的颜色填充图像的任何给定区域,就像您可以使用绘画来填充由颜色分隔的矩形、圆形或任何其他形状一样。
为了使这更简单,我已经使图片框源图像具有与图片框本身相同的大小,这应该会使事情变得更容易一些。
鉴于我有一个带有图像和已定义颜色的图片框,并且用户只需单击图片框即可用这种颜色填充任何区域,我该如何做到这一点。
void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
// The color to be used
Color color = Color.Red;
// Image has same dimensions as picturebox to make things easier
Image img = pictureBox1.Image;
// Where it was clicked.
Point clickCoords = new Point(e.X, e.Y);
// Coloring that area clicked much like Paint does. How?
...
// After coloring show the result in the picture box again
pictureBox1.Image = img;
}
谢谢。
编辑:我想要的行为的例子。
为了明确我的目标,让我添加这个小例子。
你知道 MS Paint 对吗?
您选择了铅笔工具并开始在画布上做任何事情,无论形式或形状,或者即使您用铅笔做的点是否连接。
现在您选择存储桶工具并开始单击画布。它会做什么?根据您单击的颜色以及她在不改变您在调色板上选择的颜色的情况下走了多远,填写所选区域。
这是我想在我的图片框鼠标单击事件上模拟的行为。