我正在创建一个 Python 脚本,它执行一项任务,然后生成输出以及 PNG 文件。当我将 PNG 文件放入 Sublime 文本时。
提前致谢。
我正在创建一个 Python 脚本,它执行一项任务,然后生成输出以及 PNG 文件。当我将 PNG 文件放入 Sublime 文本时。
提前致谢。
您在 Sublime 中看到的“编码”只是 PNG 的十六进制表示(也称为hexdump)。
Sublime 默认显示二进制文件的十六进制转储。
字节 1-3(字节 0 为 89)是 ascii 'PNG'
。
50
→P
4e
→N
47
→G
请查阅ascii 表以亲自查看。
如果你在 vim 中打开文件,你会得到 garbeldy-gook 二进制文件,但你至少可以看到文件魔术将其表示为 PNG:
虽然是同一张图。您只需要使用图像查看器(或浏览器)打开它。
如果您想创建此图像的 hexdump,只需将其读入,使用 binascii 进行转换,瞧!
import binascii
ff = open("cat.png", "rb")
data = ff.read()
ff.close()
txt = binascii.hexlify(data)
fw = open("cat.txt", "w")
fw.write(txt)
fw.close()
如果你有一个完整的十六进制转储(虽然没有空格),你可以转换回来:
import binascii
ff = open("cat.txt", "r")
txt = ff.read()
ff.close()
image = binascii.unhexlify(txt)
如果您确实有空格(如上面的 Sublime 一样),只需在使用时去掉所有空格。
import binascii
ff = open("cat.txt", "r")
txt = ff.read()
ff.close()
# Split on space, join back with no separator
txt = "".join(txt.split())
image = binascii.unhexlify(txt)