java - 如何识别 byte[] 的内容是 JPEG?

标签 java image jpeg

我有一个小字节数组(小于 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.

http://en.wikipedia.org/wiki/Magic_number_(programming)

关于java - 如何识别 byte[] 的内容是 JPEG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4550296/

相关文章:

java - 使用 ViewPager 在选项卡之间切换时,RecyclerView 一次自动滚动一项

node.js - AWS Node Lambda 发送回二进制图像作为响应

图像翻转,OpenGL 使用 libjpeg 输出到 JPEG

java - 图像未显示在 jPanel 中

python - 将 jpeg 字符串转换为 PIL 图像对象

java - 尝试检索特定路径下的文件夹/文件的 CMIS 查询不返回任何文档

java - 从 XML 文件中删除节点(DOM4J、JAVA)

java - 如何从 JButton/JLabel 更新 ImageIcon

php - 为什么我使用 PHP 上传的图片没有正确存储在 longblob 中

javascript - 使用 jspdf 将 html 转换为 pdf 时,TypeError : pdf. fromHTML 不是函数