Java实现简单的图片检索系统
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* 简单的图片检索系统,根据关键词搜索文件名匹配的图片。
*/
public class ImageRetriever {
public static void main(String[] args) {
// 加载图片库,图片库路径可以根据实际情况修改
List<File> imageLibrary = loadImagesFromDirectory('imageLibrary');
// 设置要搜索的关键词
List<File> matchedImages = searchImagesByKeyword(imageLibrary, 'sunset');
// 展示匹配的图片信息
displayMatchedImages(matchedImages);
}
/**
* 从指定目录加载图片文件。
*
* @param directoryPath 图片库目录路径
* @return 包含所有图片文件的列表
*/
public static List<File> loadImagesFromDirectory(String directoryPath) {
List<File> imageLibrary = new ArrayList<>();
File directory = new File(directoryPath);
// 判断路径是否为目录
if (directory.isDirectory()) {
File[] files = directory.listFiles();
// 遍历目录下的所有文件
if (files != null) {
for (File file : files) {
// 只添加jpg格式的图片文件
if (file.isFile() && file.getName().toLowerCase().endsWith('.jpg')) {
imageLibrary.add(file);
}
}
}
}
return imageLibrary;
}
/**
* 根据关键词搜索匹配的图片。
*
* @param imageLibrary 图片库列表
* @param keyword 要搜索的关键词
* @return 匹配关键词的图片列表
*/
public static List<File> searchImagesByKeyword(List<File> imageLibrary, String keyword) {
List<File> matchedImages = new ArrayList<>();
// 遍历图片库
for (File image : imageLibrary) {
// 判断文件名是否包含关键词 (忽略大小写)
if (image.getName().toLowerCase().contains(keyword.toLowerCase())) {
matchedImages.add(image);
}
}
return matchedImages;
}
/**
* 展示匹配的图片信息。
*
* @param matchedImages 匹配的图片列表
*/
public static void displayMatchedImages(List<File> matchedImages) {
System.out.println('共找到' + matchedImages.size() + '张匹配的图片:');
for (File image : matchedImages) {
System.out.println(image.getName());
}
}
}
原文地址: https://www.cveoy.top/t/topic/f1KS 著作权归作者所有。请勿转载和采集!