Thorsten F.: Animated Gifs

Hi,

muss man in Java was beachten um animated Gifs einzubinden? Ich habe ein Gif erstellt, welches sich nach 1s ändert. Ich kann mir dieses zwar in Java anzeigen lassen, aber ich sehe leider immer nur den ersten Zustand des Bildes.

Frage: Geht das überhaupt oder muss ich hier mit Threads oder Timeouts arbeiten, so dass ich also für ein animated Gif mehrere Bilder verwenden muss und diese nacheinander laden.

Wenn alle Bilder geladen sind, dann wieder von vorne?

Ich kann mir nicht vorstellen, dass es in Java nicht möglich sein sollte, ein animated Gif einzubinden.

Weiß jemand Rat?

Grüße,
Thorsten F.

  1. Moin!

    Frage: Geht das überhaupt oder muss ich hier mit Threads oder Timeouts arbeiten, so dass ich also für ein animated Gif mehrere Bilder verwenden muss und diese nacheinander laden.

    Ein GIF animiert sich jedenfalls nicht von alleine. Ich bezweifle, dass die simple Einbindung eines Bildes im Spezialfall "GIF" in Java den Animationscode gleich mit integriert - von den angesprochenen Timing-Funktionen, die ggf. ja andere Programmabläufe stören könnten, ganz abgesehen.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Hi,

      heißt also: Das geht nicht?
      Sollte ich also den ganzen Kram überdenken, ob ich "blinkende" Bilder haben möchte? Überdenken heißt ist diesem Fall: Weglassen und das Problem anders lösen?

      Grüße,
      Thorsten F.

      Moin!

      Frage: Geht das überhaupt oder muss ich hier mit Threads oder Timeouts arbeiten, so dass ich also für ein animated Gif mehrere Bilder verwenden muss und diese nacheinander laden.

      Ein GIF animiert sich jedenfalls nicht von alleine. Ich bezweifle, dass die simple Einbindung eines Bildes im Spezialfall "GIF" in Java den Animationscode gleich mit integriert - von den angesprochenen Timing-Funktionen, die ggf. ja andere Programmabläufe stören könnten, ganz abgesehen.

      • Sven Rautenberg
      1. Moin!

        heißt also: Das geht nicht?

        Das habe ich nicht gesagt. Ich habe nur gesagt, dass ein animiertes GIF sich nicht automatisch selbst animiert, sondern immer Programmcode benötigt, der die Animation macht. Und ganz offensichtlich bietet Java da keinen Automatismus.

        Sollte ich also den ganzen Kram überdenken, ob ich "blinkende" Bilder haben möchte? Überdenken heißt ist diesem Fall: Weglassen und das Problem anders lösen?

        Da deine erste Strategie "GIF einfach als Bild einbinden" nicht funktioniert hat: Ja klar, ein neuer Ansatz ist unumgänglich.

        PS: Vermeide TOFU!

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
        1. Hi,

          habe das inzwischen so gelöst, dass ich die paint-Methode jede Sekunde neu aufrufe. Dies geht auch nicht zu Lasten der CPU, Fazit: Es läuft eigentlich schon ganz gut.

          Eine andere Sache ist allerdings, dass ich so jede Sekunde einen kompletten repaint() auf das gesamte Frame mache. Gibt es vielleicht eine Möglichkeit einen repaint() nur auf ein bestimmtes Okjekt zu machen und nicht auf die gesamte Anwendung?

          Grüße,
          Thorsten F.