Wie ein animiertes Bild erstellen, die von noch Stack-Überlauf-Rahmen

Bei einer Liste von True-Color-Vollbilder in BufferedImage und eine Liste der Rahmendauern, wie kann ich ein Bild verlustlos schaffen, dass, wenn auf einem JLabel setzen, animieren?







Von dem, was ich finden kann. Ich konnte eine ImageWriter- Umwickeln eines ByteArrayOutputStream erstellen. IIOImage schreiben, um es Rahmen, dann Toolkit.getDefaultToolkit (). create den Strom in einem ToolkitImage.

Es gibt zwei Probleme mit diesem Versuch.

[Bearbeiten]
Einige prägnanten Einschränkungen und Anforderungen. Bitte kommen Sie nicht mit irgendetwas auf, die diese Regeln beugt.

Was ich nicht will:

  • Herstellung einer Animation Gewinde- und Malerei / Aktualisieren jedes Bild der Animation selbst,
  • Mit jeder Art von 3rd-Party-Bibliothek,
  • Leihen eines externen Prozess, beispielsweise ein Web-Browser,
  • Zeigen Sie es in irgendeiner Art von Video-Player-Objekt oder 3D-beschleunigte Szene (OpenGL / etc),
  • Arbeiten Sie direkt mit Klassen von der Sonne. * Pakete






  • Rahmengröße so groß wie Monitorgröße sein. Bitte sorgen Sie sich nicht über die Leistung. Ich werde darüber keine Sorgen. Sie werden nur über Richtigkeit kümmern.
  • Frames haben alle die gleiche Größe,
  • ein Bildunterklasse. Ich soll das Bild wie g.drawImage zurückgreifen kann (ani, 0, 0, dies) und es würde animieren, oder es in einem ImageIcon wickeln und sie auf einen JLabel / JButton / etc, und es wäre zu animieren,
  • Jeder Rahmen kann jeweils eine unterschiedliche Verzögerung von 10 ms bis zu einer Sekunde,
  • Animation kann oder Schleife beenden, und dies wird definiert einmal pro Animation (wie GIF),
  • Ich kann alles verpackt mit Oracle Java 8 verwenden (z JavaFX),
  • Was auch immer geschieht, sollte es mit SWING integrieren
  • Frames können Transparenz haben. Bei Bedarf kann ich meine Bilder im Voraus als die Animation auf einem bekannten Hintergrund angezeigt wird (einzelne Farbe) sowieso opaquify.
  • Mir ist es egal, ob ich mir vorstellen, Unterklasse haben und dort eine Animation Thread hinzufügen, die mit dem Imageobserver zusammenarbeiten werden. oder meine eigene InputStreamImageSource schreiben. aber ich weiß nicht, wie.
  • Wenn ich irgendwie eine JavaFX-Szene mit einigem HTML und CSS-Code angezeigt werden kann, dass meine Bilder animiert, dann ist das auch in Ordnung. Aber solange es ist alles in einem einzigen SWING-kompatibelen Objekt gekapselt, dass ich um passieren kann.

fragte um 20:18 Uhr 4 '15 September







In Verbindung stehende Artikel