IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Lecture multiple des images dans un dossier


Sujet :

Java

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut Lecture multiple des images dans un dossier
    Bonjour,
    je veux lire un ensemble d'image qui sont dans le même dossier. Les noms de ces images sont sous la forme chaîne _chiffre
    Exemple: "Image_10_AdvertisingBold_0" le dernier chiffre varie de 0 à 300.
    Quelqu'un peut m'aider SVP.
    ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
           File path = new File("E:\\base\\AdvertisingBold\\AdvertisingBold_10_Bold\\set1");
    FileReader fr;
     
                fr = new FileReader (path);
     
    for (int i = 0; i < 100; i++){
        BufferedImage newImage = ImageIO.read("Image_10_AdvertisingBold_"+i);
        }
    }
        }
    Merci

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Déjà la méthode read() ne prend pas de String en paramètre, mais un File, une URL, ou un InputStream. Ensuite, il faudrait indiquer le dossier dans lequel se trouve les images dans le chemin (chemi absolu) : le nom peut suffire si le dossier des images est le dossier d'exécution (chemin relatif). En plus, je suppose que si tu veux charger des images, c'est pour les conserver en mémoire pour pouvoir en faire quelque chose ensuite. Alors que là, la variable qui pointe sur l'image n'existe que dans l'itération et ensuite n'est plus accessible : il te suffit de l'ajouter dans une liste.

    Le FileReader par contre ne sert à rien ici.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    List<BufferedImage> liste = new ArrayList<>(); // liste des images
    for (int i = 0; i < 100; i++){
        BufferedImage newImage = ImageIO.read(new File("E:\\base\\AdvertisingBold\\AdvertisingBold_10_Bold\\set1", "Image_10_AdvertisingBold_"+i));
        liste.add(newImage);
    }
    Reste à gérer les exceptions :

    • soit on veut que dès qu'il y a erreur, on abandonne tout : dans ce cas le try/catch englobe le tout (ou un throws, pour gérer ça dans l'appel)
    • soit on veut simplement ignorer les images en erreur : dans ce cas, le try/catch englobe que le code du bloc de l'itération
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    Bonjour,
    Je vous remercie pour l'explication détaillé. Je suis un petit peux débutante avec la manipulations des image en java .
    j'ai toujours un problème avec la 1ere ligne de genre "Uncompilable source code - type java.awt.List does not take parameters"

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par pretyy Voir le message
    type java.awt.List does not take parameters"
    C'est parce qu'il faut importer java.util.List, pas java.awt.List.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    ça fonctionne correctement avec un VECTOR. .Je vous remercie infiniment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    listSegments = new Vector<BufferedImage>();
    for (int i = 0; i < 18896; i++)
    {
        BufferedImage newImage = ImageIO.read(new File("E:\\base\\AdvertisingBold\\AdvertisingBold_10_Bold\\set1", "Image_10_AdvertisingBold_"+i+".png"));
       listSegments.add(newImage);
       System.out.println("Segment("+i+")=["+listSegments.elementAt(i)+","+listSegments.elementAt(i)+"]");
    }

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Il ne faut pas utiliser les java.util.Vector. C'est une vieille classe, qui a été conservée par compatibilité (je ne comprends pas pourquoi elle n'est pas dépréciée). Elle est synchronisée ce qui ne sert à rien dans ton cas.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Il y a aussi la solution de lister les images que tu souhaites lire :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    FilenameFilter fnf = (File file, String name) -> name.charAt(0) != '.' && name.contains("Image_10_AdvertisingBold_") && name.contains(".png") ; // Ne lit que les images que tu souhaites.
    File[] files = new File("E:\\base\\AdvertisingBold\\AdvertisingBold_10_Bold\\set1").listFiles(fnf) ;
    Arrays.sort(files) ; // Tri les images. Important en fonction de l'OS.
    for (int i = 0; i < files.length ; i++)
    	{
    	BufferedImage newImage = ImageIO.read(files[i]) ;
    	listSegments.add(newImage);
    	System.out.println("Segment("+i+")=["+listSegments.elementAt(i)+","+listSegments.elementAt(i)+"]");
    	}

    Je lis massivement des images en java et c'est la solution que j'ai adoptée.
    Ca a l'avantage que tu n'as pas à mettre en dur le nombre d'images à lire et le FilenameFilter permet de ne sélectionner que les images que tu souhaites.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  8. #8
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Il y a aussi la solution de lister les images que tu souhaites lire :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    FilenameFilter fnf = (File file, String name) -> name.charAt(0) != '.' && name.contains("Image_10_AdvertisingBold_") && name.contains(".png") ; // Ne lit que les images que tu souhaites.
    File[] files = new File("E:\\base\\AdvertisingBold\\AdvertisingBold_10_Bold\\set1").listFiles(fnf) ;
    Arrays.sort(files) ; // Tri les images. Important en fonction de l'OS.
    for (int i = 0; i < files.length ; i++)
    	{
    	BufferedImage newImage = ImageIO.read(files[i]) ;
    	listSegments.add(newImage);
    	System.out.println("Segment("+i+")=["+listSegments.elementAt(i)+","+listSegments.elementAt(i)+"]");
    	}

    Je lis massivement des images en java et c'est la solution que j'ai adoptée.
    Ca a l'avantage que tu n'as pas à mettre en dur le nombre d'images à lire et le FilenameFilter permet de ne sélectionner que les images que tu souhaites.
    Merci pour votre réponse. ça fonctionne correctement .
    MERCI encore une fois

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Apache : Est-ce possible d'afficher du HTML et des images dans un dossier cgi ?
    Par Mardull dans le forum Serveurs (Apache, IIS,...)
    Réponses: 0
    Dernier message: 02/10/2014, 16h17
  2. Réponses: 2
    Dernier message: 26/02/2012, 11h08
  3. [AC-2002] Affichage des images dans un dossier
    Par Jean-Luc80 dans le forum VBA Access
    Réponses: 0
    Dernier message: 16/05/2009, 07h00
  4. lecture des noms d'images dans un dossier
    Par saxegaard dans le forum Général Python
    Réponses: 2
    Dernier message: 18/05/2008, 03h15
  5. Lecture de fichier image dans un dossier avec java
    Par dreamnos dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 27/04/2008, 10h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo