C# 如何在字节数组中检测与设备无关的位图图像?

C# 如何在字节数组中检测与设备无关的位图图像?,c#,blob,binary-data,bmp,C#,Blob,Binary Data,Bmp,我试图从MSSQL数据库中检索文件,该数据库以图像(数据类型)格式存储文件。我将它们作为字节数组进行流式传输,并使用幻数来检测文件格式。然而,BMP文件的幻数是0x424D,这在随机字节数组中非常常见(与.BMP文件无关)。我想知道是否有其他签名可用于检测二进制数据中的位图图像。您可以读取整个标题部分,看看字段是否有合理的值……我无法检测标题部分。是第三方应用程序将该数据存储在数据库中。所以我要做的是通过查找特定文件的幻数来检测头部分。另外,你所说的合理值是什么意思?请把它当作位图头信息来读。然

我试图从MSSQL数据库中检索文件,该数据库以图像(数据类型)格式存储文件。我将它们作为字节数组进行流式传输,并使用幻数来检测文件格式。然而,BMP文件的幻数是0x424D,这在随机字节数组中非常常见(与.BMP文件无关)。我想知道是否有其他签名可用于检测二进制数据中的位图图像。

您可以读取整个标题部分,看看字段是否有合理的值……我无法检测标题部分。是第三方应用程序将该数据存储在数据库中。所以我要做的是通过查找特定文件的幻数来检测头部分。另外,你所说的合理值是什么意思?请把它当作位图头信息来读。然后检查每像素的宽度/高度/位值是否合理(0<宽度<10000,0<高度<10000),并检查字节数组的总体大小。随机数据/文本看起来像有效信息的可能性很小。标题是否包含所有这些信息?我的意思是,它们是否在0x424D之后显示?对不起,我从来没有做过这种转换,所以我的问题可能听起来很愚蠢。如果这些字节正好在424D之后,您知道我需要检查多少字节以确保它实际上是位图图像吗?请参阅eg或