begin process at 2012 02 15 12:58:18
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Java2D

 > LIRE TOUTES LES IMAGES D'UN GIF ANIMÉ

LIRE TOUTES LES IMAGES D'UN GIF ANIMÉ


 Information sur la source

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Java2D Classé sous :gif, anime, imageio, image Niveau :Débutant Date de création :30/03/2006 Date de mise à jour :30/03/2006 01:52:14 Vu :31 279

Auteur : tucobouch

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note


 Description

Une petite source montrant comment lire toutes les images d'un gif animé...

(je sais pas si ça deja été posté... pourtant j'ai cherché! désolé aux admins sinon... :)

Source

  • /**
  • * lit les images d'un gif animé
  • @param f l'image gif
  • @return le tableau d'images ou null si erreur
  • */
  • public static BufferedImage[] readGifImages(String f)
  • {
  • BufferedInputStream in=null;
  • //stream image
  • ImageInputStream stream = null;
  • try {
  • in=new BufferedInputStream(new FileInputStream(new File(f)));
  • stream = ImageIO.createImageInputStream(in);
  • } catch (IOException e) {
  • return null;
  • }
  • //reader d'image
  • ImageReader r=getReader("GIF");
  • if (r==null) return null;
  • //tableau dynamique des images lues
  • ArrayList<BufferedImage> img=new ArrayList<BufferedImage>();
  • try{
  • r.setInput(stream,true,true);
  • ImageReadParam param = r.getDefaultReadParam();
  • //lecture des images
  • try{
  • int i=0;
  • //on lit tant qu'il y a pas d'exceptions !
  • while(true)
  • {
  • //lecture et ajout
  • img.add(r.read(i,param));
  • i++;
  • }
  • }catch(Exception e2) {}
  • r.dispose();
  • in.close();
  • }catch(Exception e)
  • {
  • return null;
  • }
  • //retourne un tableau
  • return img.toArray(new BufferedImage[img.size()]);
  • }
  • /**
  • * donne le reader correspondant au format
  • @param format le format désiré (voir ImageIO.write)
  • @return le reader correspondant ou null si erreur
  • */
  • private static ImageReader getReader(String format)
  • {
  • Iterator readers = ImageIO.getImageReadersBySuffix(format);
  • if (readers.hasNext())
  • {
  • ImageReader reader = (ImageReader) readers.next();
  • return reader;
  • }
  • return null;
  • }
/**
* lit les images d'un gif animé
@param f l'image gif
@return le tableau d'images ou null si erreur
*/
public  static  BufferedImage[]    readGifImages(String f)
{
   BufferedInputStream in=null;

   //stream image
   ImageInputStream stream = null;
   try {
      in=new  BufferedInputStream(new FileInputStream(new File(f)));
      stream = ImageIO.createImageInputStream(in);
   } catch (IOException e) {
   return  null;
   }

   //reader d'image
   ImageReader r=getReader("GIF");
   if  (r==null)   return  null;
       
        
   //tableau dynamique des images lues
   ArrayList<BufferedImage>   img=new   ArrayList<BufferedImage>();
   try{            
     r.setInput(stream,true,true);
     ImageReadParam param = r.getDefaultReadParam();

     //lecture des images

     try{
      int i=0;
      //on lit tant qu'il y a pas d'exceptions !
      while(true)
      {
        //lecture et ajout
        img.add(r.read(i,param));
        i++;
      }
     }catch(Exception e2) {}
            
            
     r.dispose();
     in.close();
 }catch(Exception e)
 {
   return  null;
 }

        //retourne un tableau
 return  img.toArray(new BufferedImage[img.size()]);
}

/**
* donne le reader correspondant au format
@param format le format désiré (voir ImageIO.write)
@return le reader correspondant ou null si erreur
*/
private static  ImageReader getReader(String format)
{
 Iterator readers = ImageIO.getImageReadersBySuffix(format);
 if (readers.hasNext()) 
 {
   ImageReader reader = (ImageReader) readers.next();
   return  reader;
 }
 return  null;
}

 Conclusion

Ne pas oublier les import :

import  java.io.*;
import  javax.swing.*;
import  javax.imageio.*;
import  javax.imageio.stream.*;
import  java.util.*;
import  java.awt.image.*;

Pour charger une image gif, suffit d'executer par exemple readGifImages("chat.gif") pour avoir toutes les images du gif animé chat.gif


 Historique

30 mars 2006 01:52:14 :
manquait la fonction getReader()

 Sources du même auteur

Source avec Zip Source avec une capture JWOLFENSTEIN 3D !
Source avec Zip Source avec une capture JEU DE LA VIE DE CONWAY
Source avec Zip Source avec une capture PAS TOUCHE !!!
Source avec Zip Source avec une capture COLLISIONS EN 2D : AXES SÉPARATEURS
Source avec Zip Source avec une capture MODELE DE RESCORLA WAGNER

 Sources de la même categorie

Source avec Zip Source avec une capture REPRÉSENTATION GRAPHIQUE DE FONCTIONS ET OBJETS GÉOMÉTRIQUES par Julien39
Source avec Zip EDITEUR DES GRAPHES par pretude
Source avec Zip Source avec une capture GRAPHIQUE (COURBE 2D ) par cherkaouif
Source avec Zip UNE CALCULATRICE BIEN FAITE par William44290
Source avec Zip Source avec une capture ABC-WTOOLS EST UN FRAMEWORK DE PRODUCTION DE LOGICIEL DE GES... par William44290

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture SELECTEUR D'IMAGE EN SWING par Julien39
Source avec Zip Source avec une capture JVIEWER 0.7 par Romano58
Source avec Zip Source avec une capture EXTRACTION DES IMAGES CONTENUES DANS UN PDF par jojolemariole
Source avec une capture TÉLÉCHARGEMENT D'IMAGES (POCHETTES CD, DVD, LIVRES...) SUR I... par dufour137
FAIRE DEFILER UNE IMAGE par Nic.C

Commentaires et avis

Commentaire de javaTfairelaPo le 19/03/2007 12:16:25

La fonction getReader me renvoie null, alors que l'affichage des formats reconnus contient bien le type gif. Aurais-tu une idée du pourquoi du comment?

Merci pour ta source et tes conseils futurs...

Commentaire de tucobouch le 19/03/2007 18:47:48

Si tu fait :
ImageIO.getReaderFormatNames();
qu'est ce qu'il te retourne ?

bon courage

Commentaire de javaTfairelaPo le 20/03/2007 12:35:33

Merci de ton aide,
Je me suis rendu compte que mon erreur venait de l'instruction :
   in=new BufferedInputStream(new FileInputStream(new File(f)));
Je récupère directement une IOException et donc null !
(Je préfèrerai donner une URI ou URL en argument --> bibi en galère)

Je ne récupère donc pas null en sortie de getReader.

Commentaire de javaTfairelaPo le 20/03/2007 18:53:02

Mon probleme d'URL est résolu !

J'ai quand même un souci quand à l'affichage de mes images; le fond n'est pas codé avec l'image (traduire : seule la partie qui doit être rafraichie est dans le gif).
Comment récupérer les coordonnées permettant d'afficher, par exemple, l'image 1 par rapport à l'image 0?
Tu as certainement été confronté au problème, comment l'as-tu résolu?

Commentaire de pumbaa666 le 19/12/2007 17:02:58 8/10

Tient, je suis tombé par hasard sur cette source, et elle est tout à fait interessante. J'ai justement eu le problème il y a qq jour ou je voulais extraire chaque images d'un .gif, mais je n'arrivait pas à avoir l'image complète à chaque image (il y a que ce qui change qui est codé dans le gif)

Alors je suis interessé par la réponse à la question qu'a posé JavaTfairelaPo : comment récupérer les coordonnées du bout d'image qui a changé ??

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Lecture d'un gif avec ImageIO.read [ par Bouki ] sltmon pb est sur ce bout de code :try{Image_selectionne = ImageIO.read(new File(Nom_image));}catch (IOException e){e.printStackTrace();}le new file n Help: Affichage d'image bmp avec transparence grace a son masque [ par Sirusisback ] Bonjour je suis nouveau et j'ai probleme:Jai trois image:- backgroung.bmp- image.bmp (image quelconque)- image_mask.bmp (masque de l'image.bmp)Je sui Bouton vec .ico et non avec .gif [ par kikoj ] Salut à tous,Mon probléme c'est que j'ai un JButton qui doit recevoir une certaine image. Le probléme c'est que l'image doit être un .gif et l'image q Saving image avec ImageIO [ par elpadrino93 ] BonjourApr&#232;s plusieurs tentatifs sans succ&#233;es, je m'adresse a vous pour si vous pouvez m'aider, car je ne comprends toujours pas.J'ai une im javax.imageio.ImageIO ??? [ par SLaYerS ] Voila on m'avait dit qu'on pouvait lire toute sorte de fichier image... le BMP est il aussi suporter ?Car quand je fait Image img = ImageIO.read(new F Gif anime [ par Aldee ] Peut-on utiliser des gif animés dans une application Java (pas une applet).Si oui, peut-on commander leur animation par un Listener?Merci d'avance.cia CGI - envoyer une image GIF-JPEG [ par felipelvh ] Je suis en train d'ecrire un CGI (destiné a etre embarqué)Il me faut donc pouvoir envoyer des images compressées.ma réponse au GET de Internet Explore PBS ANIMATIONS THREADS [ par Geomaster ] Voilà mon probleme.--------------------------------------------------------------------this.y -= 10;image = "Perso_Dos_2.gif";panneau.repaint();try { Image en GIF sans enregistrer [ par balbinus ] Je voudrais faire un serveur qui génère une image aléatoire... J'ai donc, pour l'instant, une BufferedImage. Comment je peux faire pour l'envoyer sous Gif Annimé ou succession d'images [ par olaaa ] Salut! J'aimerai savoir si il est possible d'int&#233;grer des image en java sous forme de gif annim&#233; ou bien sous forme de succ&#233;ssion d'ima


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,903 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales