gpt4 book ai didi

java - 检查文件是否为有效的 jpg

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:45:11 25 4
gpt4 key购买 nike

我想检查我正在从目录中读取的文件是否为 jpg,但我不想简单地检查扩展名。我在想另一种方法是阅读标题。我做了一些研究,我想使用

ImageIO.read

我看过例子

String directory="/directory";     

BufferedImage img = null;
try {
img = ImageIO.read(new File(directory));
} catch (IOException e) {
//it is not a jpg file
}

我不确定从这里去哪里,它包含整个目录...但我需要目录中的每个 jpg 文件。有人可以告诉我我的代码有什么问题或需要进行哪些补充吗?

谢谢!

最佳答案

您可以读取存储在缓冲图像中的第一个字节。这将为您提供确切的文件类型

Example for GIF it will be
GIF87a or GIF89a

For JPEG
image files begin with FF D8 and end with FF D9

http://en.wikipedia.org/wiki/Magic_number_(programming)

试试这个

  Boolean status = isJPEG(new File("C:\\Users\\Public\\Pictures\\Sample Pictures\\Chrysanthemum.jpg"));
System.out.println("Status: " + status);


private static Boolean isJPEG(File filename) throws Exception {
DataInputStream ins = new DataInputStream(new BufferedInputStream(new FileInputStream(filename)));
try {
if (ins.readInt() == 0xffd8ffe0) {
return true;
} else {
return false;

}
} finally {
ins.close();
}
}

关于java - 检查文件是否为有效的 jpg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15539696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com