lundi 18 mars 2013

[JAVA] - Méthode de récupération des images.


Nous allons commencer l'implémentation de l'application de traitement des images. Le principe est assez simple : Nous allons faire une méthode prenant en entrée un chemin d'accès et parcourant les dossiers de manière récursive (ou non) afin d'y trouver les photos.

Implémentation en Java


Je commence en Java, car c'est pour moi le langage que je connais le mieux et pour lequel je ne vais pas rencontrer de problème de syntaxe ou de connaissance d'API.

Code


package com.tuto.services;

import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;

public class FilesService {
 
 private ArrayList listImages = new ArrayList();

 /**
  * 
  * @param basePath : Chemin où se trouvent les images.
  * @param recursive : Doit-on parcourir les sous-dossiers.
  * 
  */
 public void listDir(String basePath, boolean recursive) {
  
  //On créé un object File à partir du chemin en paramètre.
  File baseFile = new File(basePath);
  
  //On test l'existance physique du répertoire.
  if (!baseFile.exists() || !baseFile.isDirectory()) {
   return;
  }
  
  //On récupère les fichiers et les sous-répertoires du dossier courant
  File[] listFiles =  baseFile.listFiles(new FileFilter() {
   
   @Override
   public boolean accept(File f) {
    //On ne récupère que les fichiers jpg/JPG et les répertoires.
    return (f.isDirectory() || f.getName().toUpperCase().endsWith(".JPG"));
   }
   
  });
  
  //On parcours désormais la liste des File
  for (File file : listFiles) {
   
   //Si le File est un répertoire, alors on appelle 
   //récursivement la fonction avec le chemin du sous-répertoire.
   
   if (file.isDirectory()) {
    listDir(file.getAbsolutePath(), recursive);
   }
   else { //Sinon on ajoute l'image dans l'ArrayList
    listImages.add(file);
   }
   
  }
  
 }
 
 /**
  * Methode de test. 
  * @param args : not used
  * 
  */
 public static void main(String[] args) {
  FilesService fs = new FilesService();
  fs.listDir("C:\\Users\\Reno\\Pictures", true);
 }
 
}



Cette méthode va donc nous retourner une liste de fichier de type Jpeg. La méthode de vérification du type est à améliorer pour plusieurs raisons :

 - Un fichier avec une extension JPG/jpg n'est pas forcément une image
 - Il y a des images non JPG/jpg donc toutes les images ne seront pas listées.

Pour commencer, cela suffira, nous affinerons pas la suite.

C'est à partir de cette liste que nous allons renommer / copier et transférer les images.

Aucun commentaire:

Enregistrer un commentaire