我有一个小字节数组(小于 25K),我将其作为较大消息信封的一部分进行接收和解码。有时这是一个图像,而且它是一个 JPG。除了字节数组之外,我没有上下文信息,并且需要识别它是否是图像,以及图像是否为 JPG 类型。
是否有一些魔数(Magic Number)或魔数(Magic Number)存在于开头、结尾或某个偏移处,我可以通过查看来识别它?
我的代码示例如下所示(来自内存,而不是 c/p):
byte[] messageBytesAfterDecode = retrieveBytesFromEnvelope();
if(null != messageBytesAfterDecode && messageBytesAfterDecode > 0){
if(areTheseBytesAJpeg(messageBytesAfterDecode)){
doSomethingWithAJpeg(messageBytesAfterDecode)
}else{
flagEnvelopeAsHavingBadContentInTheField();
}
}
我真的需要什么进入
areTheseBytesAJpeg(byte[] mBytes){}
方法,甚至是指向详细说明它的规范的指针。我希望有一种非常快速的方法来做出这个决定,因为我真的不想将它们读入图像等。
最佳答案
来自维基百科:
JPEG image files begin with FF D8 and end with FF D9.
关于java - 如何识别 byte[] 的内容是 JPEG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4550296/