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

Entrée/Sortie Java Discussion :

Chemin d'accès à un fichier en Java


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2013
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 102
    Points : 43
    Points
    43
    Par défaut Chemin d'accès à un fichier en Java
    Bonsoir,
    Je veut pouvoir extraire chaque image d'un dossier afin de faire des traitements dessus mais ça ne veut pas marcher puisque mon fichier contient plusieurs images donc il faut que je fasse une boucle pour accédé a chaque image de mon fichier du coup le nom de mon chemin change a chaque fois et quand je concatène le nom d'une image a mon chemin ça ne marche pas je ne comprend pas
    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package image;
     
    import java.awt.*;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import javax.imageio.ImageIO;
     
    /**
     *
     * @author bureau
     */
    public class Image {
     
        /**
         * @param args the command line arguments
         */
     
     
        //Methode 1-> pour compter le nombre d'image dans le fichier 
        public int nbrImages(){
                File repertoire=new File("C:\\\\Users\\\\bureau\\\\Desktop\\\\M2\\\\IMM\\\\Tp\\\\IMM");
                    String [] listeimages;
                    listeimages=repertoire.list(); 
                    return listeimages.length;//length->definit la longeur d'un tableau 
        }
     
        public String [] ContenuFichier(){
                File repertoire=new File("C:\\\\Users\\\\bureau\\\\Desktop\\\\M2\\\\IMM\\\\Tp\\\\IMM");
                    String [] listeimages;
                    listeimages=repertoire.list(); 
                    return listeimages ; 
        }
     
        public static void main(String[] args) throws IOException {
     
     
                        int nbrImag;
                        String [] contenu;
                        Image I=new Image();
                        nbrImag=I.nbrImages();//le nombre d'image du fichier 
                        contenu =I.ContenuFichier();//Le contenu du fichier
                        BufferedImage b;
     
     
     
                    for(int compte=0; compte<nbrImag ;compte++){
                        b = ImageIO.read(new File("C:\\Users\\bureau\\Desktop\\M2\\IMM\\Tp\\IMM\\"+contenu[compte]+".jpg"));
                        int h = b.getHeight();
                        int w = b.getWidth();
                        Color[][] image = new Color[w][h];
                                for(int wi=0; wi<w; wi++){
                                         for(int hi=0; hi<h; hi++){
                                            Color pixel = new Color(b.getRGB(wi, hi));
                                                   image[wi][hi] = pixel;
                                                   System.out.println("Case :"+"["+wi+"]"+"["+hi+"]"+pixel);
     
                                                }
                                               }                    }
     
     
     
        }
     
    }                  }
    et voici l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Exception in thread "main" javax.imageio.IIOException: Can't read input file!
     at javax.imageio.ImageIO.read(ImageIO.java:1301)
     at image.Image.main(Image.java:53)
    Java Result: 1
    je vous remercie d'avance

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,

    tu te compliques la tache !

    tu n'utilise pas la bonne méthode pour récupérer les fichiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    File repertoire=new File("C:\\\\Users\\\\bureau\\\\Desktop\\\\M2\\\\IMM\\\\Tp\\\\IMM");
    File[] listeimages = repertoire.listFiles();// tu obtiens directement une liste de File
    ta methode 'nbrImages' ne sert pas a grand chose car tu n'as pas besoin de recréer un tableau pour connaitre la taille !
    tu peux le faire directement au moment du for
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for(int compte=0; compte<contenu.length;compte++){
         b = ImageIO.read(contenu[compte]);
    une autre solution consiterait a utiliser un foreach
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (File file : contenu) { // dans ce cas plus besion de compteur
         b = ImageIO.read(file); 
    }
    il faut tout fois être sur que le répertoire contient bien que des images, sinon il faut que tu filtres le contenu car sans cela tu aura des erreurs !

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2013
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 102
    Points : 43
    Points
    43
    Par défaut
    Merci pour votre aide ça marche très bien maintenant je voudrais savoir s'il y'a une fonction prédéfini pour calculer la somme et la moyenne dans java netbeans sinon comment je pourrais intégré ces méthodes dans la bibliothèque encore merci

  4. #4
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    la somme et la moyenne sont vraiment basic tu n'as pas besoin de fonction, ou alors tu la code toi même !

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

Discussions similaires

  1. [AC-2003] modifier le chemin d'accès au fichier serveur de BDD
    Par willy-78milles dans le forum IHM
    Réponses: 7
    Dernier message: 06/04/2009, 12h57
  2. Chemin d'accès au fichier
    Par Pierre94200 dans le forum Langage
    Réponses: 7
    Dernier message: 01/10/2008, 16h17
  3. Comment afficher un chemin d'accés de fichier dans un edit text?
    Par rakinetak dans le forum Interfaces Graphiques
    Réponses: 8
    Dernier message: 18/08/2008, 10h44
  4. chemin d'accés à un fichier
    Par MALIKA-MARIE dans le forum VB.NET
    Réponses: 8
    Dernier message: 19/11/2007, 17h27
  5. Chemin d'accès des fichiers dans des sous rep
    Par Le Veilleur dans le forum C++Builder
    Réponses: 4
    Dernier message: 17/11/2004, 14h37

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