FloodFill(id, x, y, bordercolor, color[, t])
id
angegebenen Pinsel mit der Farbe color
zu füllen.
Sie müssen eine Startposition in den Argumenten x
und y
angeben. FloodFill()
startet dann in alle Richtungen und ersetzt
dann die Pixel mit der angegebenen Farbe, bis sie die Grenzfarbe
bordercolor
erreicht. Die Ausgangslage ist in der Regel ein
beliebiger Punkt innerhalb des begrenzten Bereichs.
Wenn der Pinsel ein Palettenpinsel ist, arbeitet FloodFill()
im Stiftmodus und nicht im Farbmodus. Das bedeutet, dass sowohl
das Argument bordercolor
als auch color
auf einen Stiftindex
anstelle einer RGB-Farbe gesetzt werden müssen. Im Stiftmodus
verhält sich FloodFill()
genauso wie im RGB-Modus, außer dass
Stifte anstelle von RGB-Farben verwendet werden.
Ab Hollywood 9.0 können Sie auch #NOCOLOR
im Argument bordercolor
übergeben. In diesem Fall wird eine randlose Füllung verwendet,
was bedeutet, dass alle benachbarten Pixel, die der Farbe (oder
dem Stift) des Startpixels entsprechen, gefüllt werden.
Darüber hinaus führt Hollywood 9.0 ein optionales Tabellenargument ein, mit dem Sie die folgenden Optionen angeben können:
AlphaChannel:
True
setzen, arbeitet FloodFill()
auf
dem Alphakanal des Pinsels statt auf seinen Farbkanälen. Dies
bedeutet, dass Sie Werte im Bereich von 0 bis 255 anstelle von
RGB-Farben an FloodFill()
übergeben müssen.
ColorSource:
AlphaChannel
auf True
gesetzt sind, wird
der zu füllende Bereich durch die Farbkanäle bestimmt, während
die gesamte Ausgabe in den Alphakanal geschrieben wird. Das
bedeutet, dass die an FloodFill()
übergebene Rahmenfarbe eine
RGB-Farbe (oder #NOCOLOR
) und die Füllfarbe ein Alphawert zwischen
0 und 255 sein muss. (V9.1)
Siehe auch QuantizeBrush(), ReadBrushPixel(), ReplaceColors() und WriteBrushPixel().
#NOCOLOR
eine randlose FüllungCreateBrush(1, 241, 201) SelectBrush(1) SetFillStyle(#FILLNONE) Ellipse(0, 0, 120, 100, #RED) EndSelect FloodFill(1, 120, 100, #RED, #WHITE) DisplayBrush(1, 0, 0)Es wird eine rote Ellipse mit einer Kontur erzeugt, die dann mit der Farbe Weiß gefüllt wird.
FloodFill()
startet vom Zentrum
der Ellipse aus in alle Richtungen.