Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以从其字节数组内容中找到图像文件扩展名?_Java_Database_Image_Bytearray - Fatal编程技术网

Java 是否可以从其字节数组内容中找到图像文件扩展名?

Java 是否可以从其字节数组内容中找到图像文件扩展名?,java,database,image,bytearray,Java,Database,Image,Bytearray,如果图像文件已作为字节数组存储到数据库中,是否可以从字节数组内容中找到图像文件扩展名 我可以从数据库中获取字节数组。我需要在屏幕上显示图像文件 在显示它之前,我希望有图像文件扩展名,例如.png、.jpg或.jpeg等。大多数文件格式的开头都有一个“幻数”,以两个字节的形式表示它是什么文件 GIF以“GIF89a”或“GIF87a”开头,即字节47,49,46,38,39,61或47,49,46,38,37,61(均为十六进制) JPEG以FF,D8开头,以FF,D9结尾 PNG以89,50,4

如果图像文件已作为字节数组存储到数据库中,是否可以从字节数组内容中找到图像文件扩展名

我可以从数据库中获取字节数组。我需要在屏幕上显示图像文件

在显示它之前,我希望有图像文件扩展名,例如
.png
.jpg
.jpeg
等。

大多数文件格式的开头都有一个“幻数”,以两个字节的形式表示它是什么文件

GIF以“GIF89a”或“GIF87a”开头,即字节47,49,46,38,39,61或47,49,46,38,37,61(均为十六进制)

JPEG以FF,D8开头,以FF,D9结尾

PNG以89,50,4E,47,0D,0A,1A,0A开头

请在上查看有关幻数的更多信息


对于其他格式,你可以用谷歌搜索这个神奇的数字。但是有些人却没有。

Java Mime Magic库也可以在这里提供帮助(它是一个用于确定文件或流的Mime类型的Java库)


不,不是原始文件扩展名(因为它可以是任何文件),但您可以通过检查“幻数”找到图片类型:它取决于文件类型。其中有些会携带这些信息,有些则不会——这取决于格式。此外,每种格式都必须单独考虑,因为每个存储此信息的格式都将存储在不同的位置