for iTemp2 = lStartY to lFinishY for iTemp1 = lStartX to lFinishX sCopy = sCopy & ChrB(Pixel(iTemp1,iTemp2)) next next
for iTemp2 = 1 to lHeight for iTemp1 = 1 to lWidth Pixel(lX3 + iTemp1,lY3 + iTemp2) = AscB(MidB(sCopy,(iTemp2 - 1) * lWidth + iTemp1,1)) next next end sub
' Non-recursive flood fill, VBScript has a short stack (200 bytes) so recursion won't work public sub Flood(ByVal lX,ByVal lY) Dim aPixelStack Dim objPixel Dim lOldPixel
Set aPixelStack = New PixelStack
aPixelStack.Push lX,lY
lOldPixel = Pixel(lX,lY)
while(aPixelStack.Size > 0) Set objPixel = aPixelStack.Pop
if objPixel.X >= 1 and objPixel.X <= lWidth and objPixel.Y >= 1 and objPixel.Y <= lHeight then if Pixel(objPixel.X,objPixel.Y) <> ForegroundColourIndex and Pixel(objPixel.X,objPixel.Y) = lOldPixel then Pixel(objPixel.X,objPixel.Y) = ForegroundColourIndex