Accueil > > > LIRE TOUTES LES IMAGES D'UN GIF ANIMÉ
LIRE TOUTES LES IMAGES D'UN GIF ANIMÉ
Information sur la source
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
Sources de la même categorie
Commentaires et avis
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ès plusieurs tentatifs sans succé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égrer des image en java sous forme de gif annimé ou bien sous forme de succéssion d'ima
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|