将(.hex?)文件转换为可视图像



我最近收到一个文本文件,并被告知它可以转换为图像。文本文件如下所示。。。

0000000 d8ff e0ff 1000 464a 4649 0100 0001 0100
0000010 0100 0000 e2ff a80c 4349 5f43 5250 464f
0000020 4c49 0045 0101 0000 980c 7061 6c70 1002
...
000d320 8b4c 1b28 3bd4 0016 91e0 799e 34c1 4457
000d330 7113 ee4d cd73 4945 63db d9ff          
000d33c

通过谷歌搜索,我很确定这是一个.hex文件(尽管我在网上看到的许多hex文件都有不同的格式,所以我不确定)。

当我搜索"将十六进制转换为图像"时,像我这样格式化的结果真的很枯燥。

有人确定这是什么类型的文件,以及我如何将其转换回可查看的图像吗?

感谢

这看起来像一个jpeg文件,编码在.hex文件中。

我不习惯使用hex文件,但第一位的7看起来基本上是在数行。我会忽略它们,我相信你可以找到关于角色的文档(如果有的话!)。实际的数据字节是在每一行的其余部分中编码的内容。

前段时间,我写了一个轻量级的jpeg编码器。我进入了源代码,看看我在你的文件中看到的字节是否敲响了警钟:

该文件以d8ff开头,我为编码jpeg编写的代码从写入文件头开始,该文件头将其标识为jpeg并对其大小等信息进行编码,从写入字节FFDB开始(请参见此行,其中"SOI"代表"文件的开头")。

然后我们有e0ff 1000 464a 4649 0100 0001。。。我的代码写:FFE0 0010 4A46 4946 0001 0100(请参见第127行和以下内容),这是带有JFIF头的标准JPEG文件的下一个字节。

最后,文件的最后3个字节是d9ff,jpec将FFD9写入文件末尾字节。

很明显,您的文件不是用与我的代码相同的端序编写的(实际上,它看起来像是中端序,我以前从未真正见过…),但您可以看到,当反转这两个字节的顺序时,每个2字节(4个十六进制字符)的数据包都是相同的!这显然是一张jpeg编码的图像。。。

要将其作为图像读取,我会尝试:

  1. 只需剥离每行的7个第一位数字,并将剩余的字节写入二进制文件,如果该十六进制文件的字节序与您机器上的字节序相匹配,或者
  2. 如果你的机器的字节序符合我写Jpec的字节序,那么去掉7个第一位数字,反转每个2字节数据包的顺序,并将其写为二进制文件

希望这能有所帮助!

最新更新