2011-03-18 31 views
12

Me gustaría crear una imagen gif a partir del conjunto de imágenes Buffered. ¿Cómo puedo hacer esto? ¿Hay tal biblioteca en Java puro (ImageMagick no es una opción)? Encontré la biblioteca Gif4J pero no está libre de royalties.¿Cómo puedo crear un gif animado en Java?

+0

Prueba esta [Codificador gif] (http://www.java2s.com/Code/Java/2D-Graphics-GUI/AnimatedGifEncoder.htm). ** Pregunta relacionada: ** - [Creando un gif animado con imageio] (http://stackoverflow.com/questions/777947/creating-animated-gif-with-imageio) – Emil

+0

También está este http: // elliot. kroo.net/software/java/GifSequenceWriter/ que parece funcionar bien. –

+0

[Este] (https://github.com/dragon66/icafe) enlace y los ejemplos de la wiki harán lo que usted desee. Usted puede controlar la velocidad de cuadros también. Es puro Java. ¡Puede que ni siquiera necesites usar imageio! - dragon66 19 de septiembre de 14 a 19:47 – dragon66

Respuesta

4

Acabo de responder una pregunta similar here, pero creo que mi solución puede ayudar.

La clase 'ImageIcon' le permite cargar animaciones gif. Cargué la imagen con 'getResource()'. Para hacer esto, normalmente utilizo la clase URL para pasar la ruta del archivo. La ruta no necesita ser necesaria en una máquina remota como el nombre URL puede sugerir.

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

ruta será la ruta de acceso del archivo .gif dentro de la carpeta de clase.

Referencias: http://docs.oracle.com/javase/tutorial/uiswing/components/icon.html#getresource

0

Hay una biblioteca de procesamiento de imagen, similar a Picasso que utiliza la misma clase AnimatedGifEncoder mencionado por 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();