我有一个表示.jpeg图像的字节文件。但是,当我尝试打开图像时,出现错误,表明我的文件格式不正确。由于文件中的字节看起来应该可以正常工作,所以我有点被抛弃了。在我读过的内容中,文件与JPEG文件格式完全一致。这是一个体面的图像,所以我不会发布所有数据,但前几行看起来像这样:
ff d8 ff e0 00 10 4a 46 49 46 00 01 01 00 00 01 00 01 00 00 ff e1 00 58 45 78 69 66 00 00 4d 4d 00 2a 00 00 00 08 00 02 01 12 00 03 00 00 00 01 00 06 00 00 87 69 00 04 00 00 00 01 00 00 00 26 00 00 00 00 00 03 a0 01 00 03 00 00 00 01 00 01 00 00 a0 02 00 04 00 00 00 01 00 00 0a 20 a0 03 00 04 00 00 00 01 00 00 07 90 00 00 00 00 ff db 00 43 00 1f 15 17 1b 17 13 1f 1b 19 1b 23 21 1f 25 2f 4e 32 2f
我已经查看了其他.jpeg图像的来源,我可以说它与我在这里的内容有很大的不同。我怀疑有一些编码在进行,我只是不确定它是什么。如果有人能指出我正确的方向,我将非常感激。谢谢!
修改
这是文件的十六进制数据。我知道我需要把它转换成某种东西。我只是不确定是什么。是十进制,二进制还是什么?谢谢!
答案 0 :(得分:0)
如果您说文字文件中的十六进制数字代表二进制文件 - 您可以使用此工具进行转换:http://stahlworks.com/dev/index.php?tool=hextobin
或者您可以自己编写程序。如果您添加一些您知道的语言的信息,有人可能会指出您正确的方向。以下是Perl http://www.velocityreviews.com/forums/t22256-hexadecimal-to-binary-file-conversion-utility.html
中的实现答案 1 :(得分:0)
你绝对应该使用JPEGsnoop专用于(以及其他)检查JPEG文件的工具 - 包括 Corrupt JPEG Photos中的错误检测(见JPEGsnoop uses)。 / p>
根据您发布的内容,前20个字节完全正确(包括有效的SOI标记0xFFD8
,APP0标记0xFFE0
,网段长度0x0010
等)。 JPEGsnoop有助于识别错误。