我有一个小字节数组(小于25K),可以作为较大的邮件信封的一部分进行接收和解码。有时,这是图像,而且是JPG。除字节数组外,我没有其他上下文信息,并且需要标识这是否是图像以及图像是否为JPG类型。
是否有一些魔术数字或魔术字节存在于开头,结尾或某个偏移量处,我可以查看它们以识别它?
我的代码示例如下(从内存而不是c / p):
byte[] messageBytesAfterDecode = retrieveBytesFromEnvelope(); if(null != messageBytesAfterDecode && messageBytesAfterDecode > 0){ if(areTheseBytesAJpeg(messageBytesAfterDecode)){ doSomethingWithAJpeg(messageBytesAfterDecode) }else{ flagEnvelopeAsHavingBadContentInTheField(); } }
我真的需要什么会
areTheseBytesAJpeg(byte[] mBytes){}
方法,甚至指向详细说明它的规范的指针。我希望有一种非常快速的方法来做出此确定,因为我真的不想将它们读入图像等。
从维基百科:
JPEG图像文件以FF D8开头,以FF D9结尾。
http://en.wikipedia.org/wiki/Magic_number_(编程)