关于FloodFill的使用问题(50分)

  • 主题发起人 主题发起人 马晓明
  • 开始时间 开始时间

马晓明

Unregistered / Unconfirmed
GUEST, unregistred user!
我用floodfill做填充,代码是
Image1.Canvas.FloodFill( X,Y,Image1.Canvas.Pen.Color,fsBorder);
但是发现当填充色和画笔颜色相同时,再也无法填充别的颜色。请问 咋办?
我的E-Mail: Cellbrain@china.com。 谢谢各位!
 
fsBorder 用于检测指定的边界颜色,在你的例子中,
: Image1.Canvas.FloodFill( X,Y,Image1.Canvas.Pen.Color,fsBorder);
之前,你一定用相同的 brush.color 和 pen.color 画了什么。
这样,该多边形就是一个实心的色块,里面的任何一点都是 pen.color 色。
所以执行到填充时马上检测到指定边界色,因而无法进行。

在这种情况下,可用 fsSurface 代替 ,它自动检测色彩的变化。发现遇到和
x,y点不同的颜色就停止,可以满足要求.
 
GGCAT,我试过用fsSurface,代码是在Image的OnMouseDown里
Image1.Canvas.FloodFill(X,Y,Image1.Canvas.Pen.Color,fsSurface);
但是无法以Brush的颜色填充。是否与上句代码中Image1.Canvas.Pen.Color这个参数有关?
 
TMD, 大富翁太慢了。用了我 10 分钟才到这里。

在 fsSurface 时,color 参数是指填充的出发点颜色。

因此,应为

Floodfill(X,Y,image1.canvas.Pixels[X,Y],fsSurface);

Try it again!
 
接受答案了.
 
后退
顶部