Comment créer une image animée à partir des images fixes Stack Overflow

Étant donné une liste de couleur complet cadres en BufferedImage et une liste des durées de trame, comment puis-je créer une image sans perte, que lorsqu'il est mis sur un JLabel, va animer?







D'après ce que je peux trouver. Je pourrais créer un ImageWriter envelopper un ByteArrayOutputStream. écrire IIOImage cadres pour, puis Toolkit.getDefaultToolkit (). createImage le flux dans un ToolkitImage.

Il y a deux problèmes avec cette tentative.

[Modifier]
Certaines contraintes et exigences plus concis. S'il vous plaît ne viennent pas avec tout ce qui se plie à ces règles.

Ce que je ne veux pas:

  • Faire un fil d'animation et peinture / mise à jour chaque image de moi-même animation,
  • L'utilisation de tout type de bibliothèque 3ème partie,
  • Empruntant un processus externe, par exemple un navigateur web,
  • Afficher dans une sorte d'objet de lecteur vidéo ou d'une scène 3D accélérée (OpenGL / etc),
  • Travailler directement avec les classes du soleil. * Les forfaits






  • Taille de l'image peut être aussi grand que la taille du moniteur. S'il vous plaît ne vous inquiétez pas sur les performances. Je vais inquiéter à ce sujet. Vous aurez juste vous soucier de la décision correcte.
  • Cadres tous ont la même taille,
  • une sous-classe d'image. Je devrais être en mesure de dessiner l'image comme g.drawImage (ani, 0, 0, cela) et il animerait, ou l'envelopper dans un ImageIcon et l'afficher sur un JLabel / DButton / etc et il animerait,
  • Chaque cadre peut avoir chacun un retard différent, de 10ms jusqu'à une seconde,
  • L'animation peut en boucle ou peut se terminer, ce qui est défini une fois par l'animation (comme GIF),
  • Je peux utiliser quoi que ce soit emballé avec Oracle Java 8 (par exemple JavaFX),
  • Quoi qu'il arrive, il devrait intégrer SWING
  • Les cadres peuvent avoir la transparence. Au besoin, je peux opaquify mes images au préalable que l'animation sera affichée sur un fond connu (une seule couleur) de toute façon.
  • Je ne me soucie pas si je dois moi-même et sous-classe image ajouter un fil d'animation là-dedans qui coopérera avec le ImageObserver. ou écrire mon propre InputStreamImageSource. mais je ne sais pas comment.
  • Si je peux en quelque sorte afficher une scène JavaFX avec un code HTML et CSS qui anime mes images, c'est très bien aussi. Mais aussi longtemps que tout est encapsulé dans un seul objet compatible SWING que je peux passer autour.

a demandé le 4 septembre '15 à 20h18







Articles Liés