将文本格式的PNG转换回文件对象

问题描述 投票:-1回答:1

所以我有这个websocket调用,在这里我将文件从html表单移交给我的python后端。我会说一切正常,只是我的文件本身不会保存回图像。

我将以这种格式检索图像:

b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00c\x00\x00\x00c\x01\x03\x00\x00\x00\xb5\xf5,\xd6\x00\x00\x00\x06PLTE\x00\x00\x00\xff\xff\xff\xa5\xd9\x9f\xdd\x00\x00\x00\x02tRNS\xff\xff\xc8\xb5\xdf\xc7\x00\x00\x00\tpHYs\x00\x00\x0b\x12\x00\x00\x0b\x12\x01\xd2\xdd~\xfc\x00\x00\x00\xf1IDAT8\x8d\xcd\xd41\x8e\xc4 \x0c\x05PG\x14\x94s\x01$\xae\x91.W\x82\x0b\x84\xe1\x02\x93+\xd1q\x8dH\\ \xee(P<\x1e\xcd\xeef\x1b\xe2h\x8b\xd5\xb8\xe2u\xfe6\x00\xf4\xbb\xe0\x83\xb5\x01\xcc\x93\t\t\x06IH-$\xb5d>HJ\xc6is\xcb\xe0/h\x86\x82\xd7\x14\xf2z\xbb"j\xf3D\xf1\xe8\xac+\xce\xe7\xb3\xf1G\xda\xae\xb86\xad\xe21\xc1\xae6\rCj\xa0[\x90\x84\xb9\xc4DwX\xbd\xa4\x1d\xb8k\x9eDAID\n+-\xd5FQ\x95\x93\xd9\x07\xd0"i\x9f\xcacTD_\xbd\x9c\x08+\xcc\xa3q\xd0\x06I\xbb.<\x8c\xc0)%aZal\x0e\x14I\xe2\xc2\xd4<YQ\xbc[7\x95\x98\x7f6\xdd\x15\xdf\x177R$\x8b\xa2\x92\xf1\xd9npI\xa1\xf2*\xbe3\x9c\xca\xd7\xd7\x1d\xf4\xa2\x88\xc3\xf1c}o\xecL\xaf|\xbc\x84z\xa4\xed\xe9\xbf\x7f\xa2\xbf\xe9\t\xb2\xe0\xbc\x1a\xa1l|\xbb\x00\x00\x00\x00IEND\xaeB`\x82'

我了解这是纯文本格式的png文件,其中所有\ x ..均为不可打印字符。我要做的是将其转换回一个文件对象,该文件对象应包含诸如mimetype,文件名以及图像本身之类的内容。

我该怎么做?

python hex python-imaging-library bytecode
1个回答
0
投票

这是二进制格式,只需将其写入文件中,您将找到您的图像。顺便说一下,这是一个二维码!

data=b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00c\x00\x00\x00c\x01\x03\x00\x00\x00\xb5\xf5,\xd6\x00\x00\x00\x06PLTE\x00\x00\x00\xff\xff\xff\xa5\xd9\x9f\xdd\x00\x00\x00\x02tRNS\xff\xff\xc8\xb5\xdf\xc7\x00\x00\x00\tpHYs\x00\x00\x0b\x12\x00\x00\x0b\x12\x01\xd2\xdd~\xfc\x00\x00\x00\xf1IDAT8\x8d\xcd\xd41\x8e\xc4 \x0c\x05PG\x14\x94s\x01$\xae\x91.W\x82\x0b\x84\xe1\x02\x93+\xd1q\x8dH\\ \xee(P<\x1e\xcd\xeef\x1b\xe2h\x8b\xd5\xb8\xe2u\xfe6\x00\xf4\xbb\xe0\x83\xb5\x01\xcc\x93\t\t\x06IH-$\xb5d>HJ\xc6is\xcb\xe0/h\x86\x82\xd7\x14\xf2z\xbb"j\xf3D\xf1\xe8\xac+\xce\xe7\xb3\xf1G\xda\xae\xb86\xad\xe21\xc1\xae6\rCj\xa0[\x90\x84\xb9\xc4DwX\xbd\xa4\x1d\xb8k\x9eDAID\n+-\xd5FQ\x95\x93\xd9\x07\xd0"i\x9f\xcacTD_\xbd\x9c\x08+\xcc\xa3q\xd0\x06I\xbb.<\x8c\xc0)%aZal\x0e\x14I\xe2\xc2\xd4<YQ\xbc[7\x95\x98\x7f6\xdd\x15\xdf\x177R$\x8b\xa2\x92\xf1\xd9npI\xa1\xf2*\xbe3\x9c\xca\xd7\xd7\x1d\xf4\xa2\x88\xc3\xf1c}o\xecL\xaf|\xbc\x84z\xa4\xed\xe9\xbf\x7f\xa2\xbf\xe9\t\xb2\xe0\xbc\x1a\xa1l|\xbb\x00\x00\x00\x00IEND\xaeB`\x82'
newFile = open("image.png", "wb")
newFile.write(d)
newFile.close()

然后加载它。

© www.soinside.com 2019 - 2024. All rights reserved.