拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 Python将二进制资料译码回档案

Python将二进制资料译码回档案

白鹭 - 2022-02-17 2088 0 0

我在 MSSQL 中有一个包含压缩和转换档案的数据库,如下所示:

Python将二进制资料译码回档案

但是,在那个奇怪的可疑大小的画布中,输出只有 4 像素高,如果它只是更长的截断流的第一部分,这可能是正确的。如此窄带的颜色范围无助于确定主题,但在右侧似乎有明显的接近白色的边缘,但在顶部或左侧边缘却没有?

您的 40K 块转换为具有 PNG 特征的大约 20K 二进制档案,但 PNG 以 89 开头,因此您遇到了问题,因为它的前缀为 0x 00 22 40 DD BF(十进制 = 574676415 因此对于扩展的 PNG 存储器要求来说太大了估计为 5,420,860 字节)

我们可以丢弃 0x 作为 Hex 流的签名,并像我上面所做的那样使用余数,但是 Odd 00 22 40 DD BF 的意义是什么(很可能部分包含型别或最终全长大小的指示符和或指向下一个块的指标)

您需要做的是通过常规方法提取该影像并比较预期的总档案大小,因为转换为 20 KB 二进制档案仅相当于预期总数的 0.5%。在这种情况下,您需要确定影像其余部分的存盘方式和位置,以便将所有(200 个?)部分连接成一个同质 blob,即单个影像。

您需要了解块被缓慢提取并缓慢转换并缓慢拼接在一起的方法,但使用一些预期档案大小的度量。

uj5u.com热心网友回复:

资料是十六进制编码的,试试:

from base64 import b16decode

# Data 
encoded = '0x48656C6C6F'
decoded = b16decode(encoded[2:])
print(decoded)

输出 b'Hello'

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *