Ответ 1
Не проиндексирован, потому что не на машине с установленным JDK, так что несите меня, чтобы все набрали "as-is", но вам нужно начать (ожидайте прилив downvotes...)
Загрузка всех изображений из папки
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 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
}
}
}
}
}
Используемые API
Это относительно просто сделать и использует только стандартные классы JDK-пакетов:
Эти сеансы Java Tutorial могут помочь вам:
Возможные улучшения
- Использование Apache Commons
FilenameUtils
для извлечения расширений файлов - Обнаружение файлов на основе фактических типов или контента mime, а не на основе расширений
- Я оставляю код UI до вас. Поскольку я не знаю, является ли это домашней работой или нет, я не хочу предлагать полное решение. Но продолжать:
- Посмотрите на
FileChooser
, чтобы выбрать папку. - Я предполагаю, что вы уже знаете, как создавать фреймы/окна/диалоги.
- Ознакомьтесь с разделами Java Tutorial Как использовать иконки, в которых рассказывается, как отображать и маркировать их.
- Посмотрите на
- Я не рассмотрел некоторые вопросы:
- Обработка исключений
- Папки со злыми эндигами (скажем, у вас есть папка "TryMeIAmEvil.png" )
Объединив все вышеизложенное, это довольно легко сделать.