Flächen füllen mit GTK+ (Floodfill)



  • Hallo,

    Ich möchte gerne ein Fläche mit einer Farbe füllen. Da das ganze doch sehr kompliziert ist, bräuchte ich Eure Hilfe.

    Versucht habe ich mal die Methode "fill4" von http://de.wikipedia.org/wiki/Floodfill allerdings hatte ich sehr schnell einen Stacküberlauf, wie es auch dort beschrieben war.

    Hat jemand eine Idee, wie ich so was besser Programmieren kann? Eventuell gibt es auch GTK-Funktionen, die so was übernehmen könnten.

    Gruß HansimGlück



  • Ist diese Fläche ein Widget? Falls ja: http://ometer.com/gtk-colors.html

    Btw. Wenn du nächstes mal den relevanten Code postest (bzgl. Stackoverflow) kann man dir evtl. besser helfen.

    Cheers

    GPC



  • Danke für Deine Antwort. Ich werde das ganze übers WE versuchen.

    Stacküberlauf: Ich bin nicht sehr glücklich über diesen Sourcecode. Er war einfach mal schnell geschrieben und hatte eventuell auch einen anderen Fehler. Aus diesem Grund hab ich diesen Code nicht angegeben. Ich hab dann gehofft, das es noch andere Möglichkeiten gibt, dieses Problem zu bearbeiten. Ich konnte es mir nicht vorstellen, das sowas nicht von GTK unterstützt wird.

    Gruß HansimGlück



  • So, jetzt hab ich mal den Link gelesen. Na ja, das war nicht das was ich gesucht habe.

    Innerhalb eines Bildes gibt es geschlossene Flächen, die in einer bestimmten Farbe gezeichnet sind. Da es sein kann, das diese Flächen nicht regelmässig sind, müsste ich jeden einzelnen Pixel abfragen, ob dieser zu dieser Fläche gehört oder nicht. Gehört er dazu, müsste er mit der neuen Farbe gezeichnet werden. Das ganze ist sehr Aufwendig, da es zumindest mit den Methoden die ich bisher gefunden habe, sehr leicht zum Stack-überlauf kommt.

    Im englischen Wiki habe ich noch andere Methoden gefunden, die ich mal versuchen möchte, allerdings die Methode "fill4" währe genau die richtige.

    Eventuell gibt es eine Bibliothek die ich einbinden könnte, um dies unter GTK zu verwenden. Zur Not werde ich mir halt den Kopf zerbrechen, wie man sowas programmieren könnte.

    Hat jemand das schon mal gemacht?

    Gruß HansimGlück


Anmelden zum Antworten