ねこでじ(Nekodigi)

Nekodigi’s diary

学習中の気づきをまとめています。応援よろしくお願いします

【Processing】似た色をまとめて塗りつぶす、Flood fillを実装する

成果物

f:id:Nekodigi:20200903215203p:plain
バケツアイコンで有名な塗りつぶしを実装してみました。ただ実装しただけでは面白くないので、どのぐらいの許容範囲で塗りつぶすか選べるようにしました。再帰呼び出しが出来なくて焦りましたが、Queueを使うことで解決しました。

仕組み

対象のピクセルが目標に近い色であれば、塗りつぶし、周囲4マスに探索を進めます。今回は、周囲4マスを再帰的に探査せず、Queueに追加して順番に処理していくことで、メモリを節約しています。

コード

Flood Fillという名前で追加しています。
github.com