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