1.应用场景
最近搜集了许多美图但是有许多图片的分辨率与我的电脑桌面分辨率不一致,但是win10
资源管理器中的分辨率排序比较慢,于是我打算用Java
编写一个小程序直接找出目标图片。
- 输入:给出指定文件夹的路径;
- 输出:所有符合要求的图片文件名。
2.代码实现
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.imageio.ImageIO;
public class GetResolutionRatio {
public static void main(String[] args) {
String path = ""; //这里输入指定文件夹路径(绝对路径)
File dir = new File(path);
String[] fileList = dir.list(); //获取指定文件夹中所有文件的文件名
for (int i = 0; i < fileList.length; i++) {
File pic = new File(path + "\\" + fileList[i]);
BufferedImage sourceImg;
try {
sourceImg = ImageIO.read(new FileInputStream(pic));
if (sourceImg != null //指定文件夹中可能有其他类型的文件导致sourceImg为空
&& sourceImg.getWidth() == 1920 && sourceImg.getHeight() == 1080) { //屏幕分辨率比较
System.out.println(fileList[i]); //打印出符合要求的图片文件名
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
3.评价
理想很丰满,现实很骨感。用这个Java
程序耗费的时间比win10
资源管理器排序的时间还长/(ㄒoㄒ)/~~