2011-03-18 6 views
12

Je voudrais créer une image gif à partir de l'ensemble de BufferedImages. Comment puis-je faire ceci? Y at-il une telle bibliothèque en Java pur (ImageMagick n'est pas une option)? J'ai trouvé la bibliothèque de Gif4J mais ce n'est pas royality-libre.Comment créer un gif animé en Java?

+0

Try this [encodeur GIF] (http://www.java2s.com/Code/Java/2D-Graphics-GUI/AnimatedGifEncoder.htm). ** Question connexe: ** - [Création de gif animé avec imageio] (http://stackoverflow.com/questions/777947/creating-animated-gif-with-imageio) – Emil

+0

Il y a aussi ce http: // elliot. kroo.net/software/java/GifSequenceWriter/ qui semble bien fonctionner. –

+0

[Ce] lien (https://github.com/dragon66/icafe) et les exemples de wiki y feront ce que vous voulez. Vous pouvez également contrôler la fréquence d'images. C'est du pur Java. Vous n'avez même pas besoin d'utiliser imageio! - dragon66 19 septembre 14 à 19:47 – dragon66

Répondre

4

Je viens de répondre à une question similaire here, mais je pense que ma solution peut aider.

La classe 'ImageIcon' vous permet de charger des animations gif. Je charge l'image avec 'getResource()'. Pour ce faire, je classe normalement la classe d'URL pour passer le chemin du fichier. Le chemin n'a pas besoin d'être nécessaire dans une machine distante comme le nom de l'URL peut le suggérer.

chemin
URL url = This.class.getResource(path); 
Icon myImgIcon = new ImageIcon(url); 
JLabel imageLbl = new JLabel(myImgIcon); 
component.add(imageLbl, BorderLayout.CENTER); 

sera le chemin du gif intérieur du dossier de la classe.

Références: http://docs.oracle.com/javase/tutorial/uiswing/components/icon.html#getresource

0

Il y a une bibliothèque de traitement d'image, semblable à Picasso qui utilise la classe même de AnimatedGifEncoder mentionné par Lifelogger- Glide Docs, Glide

AnimatedGifEncoder e = new AnimatedGifEncoder(); 
e.start(outputFileName); 
e.setDelay(1000); // 1 frame per sec 
e.addFrame(image1); 
e.addFrame(image2); 
e.finish();