Das geht ganz einfach, du musst statt einem Stack eine Queue nehmen !
Ok ... es ist nicht einfach (vermute ich jetzt mal ...) für dich
Dein Code funktioniert mit Rekursion, d.h. es wird da:
image1.canvas.pixels[x+1,y]= clwhite then fuellen(x+1,y);
gewartet, bis das fertisch ist und dann weitergemacht. Du benutzt hier den Funktionsstack.
Ein Stack ist wie ein Loch in der Erde: Was du zuerst reintust kommt als letztes wieder raus.
Du musst dier also eine Liste programmieren, bei der du dann immer:
a) Pixel einfärben
b) Die-Umgebungs-pixel
hinten zur Liste hinzufügen
c) Neuen Pixel
vorne von der Liste nehemn und zurück zu a)
Vielleicht kannst du ja bereits auf eine vorhandene Queue- oder Listen-Klasse zurückgreifen