【发布时间】:2014-08-07 10:09:14
【问题描述】:
我希望能够用给定颜色填充图像的任何给定区域,就像您可以使用绘画来填充矩形、圆形或任何其他由颜色分隔的形状一样。
为了简单起见,我已经将图片框源图像设置为与图片框本身相同的大小,这应该会更容易一些。
如果我有一个带有图像和已定义颜色的图片框,并且用户只需单击图片框即可使用这种颜色填充任何区域,我该怎么做。
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 对吗?
您选择了铅笔工具并开始在画布上做任何事情,无论形状或形状,或者即使您用铅笔做的点是否连接。
现在您选择存储桶工具并开始单击画布。它会做什么?根据您单击的颜色以及她走了多远而不随您在调色板上选择的颜色而改变填充所选区域。
这是我想在我的图片框鼠标点击事件上模拟的行为。
【问题讨论】:
标签: c# winforms image-editing