Je veux lire toutes les images d'un dossier en utilisant Java.
Quand: j'appuie sur un bouton de l'application Java,
Cela devrait:
La façon de procéder?
J'ai le code pour lire l'image et aussi pour toutes les images du dossier, mais comment faire ce que j'ai dit ci-dessus?
Toute suggestion ou aide est la bienvenue! S'il vous plaît fournir des liens de référence!
Untested car pas sur une machine sur laquelle un JDK est installé, alors ne vous inquiétez pas, c'est tout ce que vous saisissez "tel quel", mais vous devez commencer (attendez-vous à une vague de votes négatifs ...)
import Java.awt.image.BufferedImage;
import Java.io.File;
import Java.io.FilenameFilter;
import Java.io.IOException;
import javax.imageio.ImageIO;
public class Test {
// File representing the folder that you select using a FileChooser
static final File dir = new File("PATH_TO_YOUR_DIRECTORY");
// array of supported extensions (use a List if you prefer)
static final String[] EXTENSIONS = new String[]{
"gif", "png", "bmp" // and other formats you need
};
// filter to identify images based on their extensions
static final FilenameFilter IMAGE_FILTER = new FilenameFilter() {
@Override
public boolean accept(final File dir, final String name) {
for (final String ext : EXTENSIONS) {
if (name.endsWith("." + ext)) {
return (true);
}
}
return (false);
}
};
public static void main(String[] args) {
if (dir.isDirectory()) { // make sure it's a directory
for (final File f : dir.listFiles(IMAGE_FILTER)) {
BufferedImage img = null;
try {
img = ImageIO.read(f);
// you probably want something more involved here
// to display in your UI
System.out.println("image: " + f.getName());
System.out.println(" width : " + img.getWidth());
System.out.println(" height: " + img.getHeight());
System.out.println(" size : " + f.length());
} catch (final IOException e) {
// handle errors here
}
}
}
}
}
Ceci est relativement simple à faire et utilise uniquement les classes standard emballées dans JDK:
Ces sessions du Java Tutorial pourraient également vous aider:
FilenameUtils
pour extraire les extensions de fichiersFileChooser
pour sélectionner le dossier.En combinant tout ce qui précède, il est assez facile à faire.
javaxt.io.Directory directory = new javaxt.io.Directory ("C:\Utilisateurs\Public\Images\Exemples d'images"); directory.getFiles (); javaxt.io.File [] fichiers;
Java.io.FileFilter filter = file -> !file.isHidden() && (file.isDirectory() || (file.getName().endsWith(".jpg")));
files = directory.getFiles(filter, true);
System.out.println(Arrays.toString(files));