GDI+如何填充任意封区域?就像windows画笔中的油漆桶那样的功能?

给出封闭区域内一点,填充区域(类似API中Floodfill()),要求可以使用透明色,期望:封装成函数funcfill(Imageimg,Pointpoint(鼠标坐标... 给出封闭区域内一点,填充区域(类似API中Floodfill()),要求可以使用透明色,期望:封装成函数funcfill(Image img,Point point(鼠标坐标在封闭区域内),Color border(边界颜色), Color fillcolor(填充颜色)),填充效率要高。
yatasoft的思路很好,但g.FillRegion(Brushes.Green, re); 是否会填充所有封闭区域呢?我所期望的是只填充某一坐标所在的封闭区域

就是说给出一点坐标,如果该坐标处于一个封闭区域就填充封闭区域,包括“回”字形区域
展开
 我来答
百度网友eab4a8d
2009-03-18 · TA获得超过1824个赞
知道小有建树答主
回答量:549
采纳率:0%
帮助的人:403万
展开全部
.net的Region可以实现你的要求,前提是这个封闭的区域点你要提供,比如你提供了100个点的区域通过线连接成封闭的,首先你要做个点集合pf,然后利用这个集合做参数创建一个GraphicsPath实例,在利用GraphicsPath实例做参数创建一个区域Region,接着可以使用Graphics实例的填充区域方法FillRegion,把你刚刚建立的区域做参数即可。方法演示下面来自网络,另外要自己写填充方法,这个只能请教别人了,呵呵。

PointF[] pf = new PointF[100];
byte[] bs = new byte[100];
for (int i = 0; i < 100; i++)
{
pf[i] = new PointF(yourXcoord, yourYcoord);
bs[i]=(byte)PathPointType.Line;
}
GraphicsPath gp = new GraphicsPath(pf,bs);
System.Drawing.Region re = new Region(gp);
g.FillRegion(Brushes.Green, re);

gp.Dispose();
re.Dispose();

能详细描述下“某一坐标所在的封闭区域”的意思吗?
这个方法就是填充整个封闭区域,只要是封闭的区域就可以
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式