[英]How to convert bytes from string to image in python?
I have this byte object in string format inside a .txt
file and I'm lost on how to convert it back into byte object, like img=b'\\x00\\x00\\x00'
so that I can write it back into an image.我在.txt
文件中有这个字符串格式的字节对象,但我不知道如何将它转换回字节对象,例如img=b'\\x00\\x00\\x00'
以便我可以将它写回图像.
The image is supposed to be a black square when back to image format.当返回图像格式时,图像应该是黑色方块。
b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\xdd\x00\x00\x00\xdd\x08\x06\x00\x00\x00?\xc4w\x1a\x00\x00\x00\x01sRGB\x00\xae\xce\x1c\xe9\x00\x00\x00\x04gAMA\x00\x00\xb1\x8f\x0b\xfca\x05\x00\x00\x00\tpHYs\x00\x00\x0e\xc3\x00\x00\x0e\xc3\x01\xc7o\xa8d\x00\x00\x00!tEXtCreation Time\x002019:07:22 19:10:08\xa0\x9d\xf4\xb4\x00\x00\x02\x80IDATx^\xed\xd3\xb1\r\xc00\x00\xc30\xa7\xff\xff\xdcf\xe8\r\x9aH\xc0\xf0\x05:\xdb\xde; \xf2\xfc\x0fDD\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x10\x13\x1d\xc4D\x071\xd1ALt\x90\xda>\xddB\x02\xb9L3W\xe8\x00\x00\x00\x00IEND\xaeB`\x82'
Opening the file .txt
file with the byte object使用字节对象打开文件.txt
文件
file=open('filename.txt','r').read()
I tried this, but the file
is in a string format我试过了,但file
是字符串格式
with open('new_pic.png','wb')as img:
img.write(file)
You should be reading the file as binary ( "rb"
).您应该将文件作为二进制文件 ( "rb"
) 读取。
file = open('filename.txt', 'rb').read()
print(type(file)) # <class 'bytes'>
print(file) # b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x01\x06\x0
with open("image.png", "wb") as img:
img.write(file)
Now, I don't know why you have image bytes stored in a text file, but a better implementation would be to use image-related modules like Pillow to read-write image files:现在,我不知道为什么将图像字节存储在文本文件中,但更好的实现是使用Pillow等图像相关模块来读写图像文件:
from PIL import Image
file = Image.open("input.png")
file.save("output.png")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.