将一串像素转换为图像 python
Converting a string of pixels into an image python
我使用以下代码行将 base64 编码的图片解码为一串像素:
pixelstring = base64.b64decode(imagencoded)
字符串看起来像这样:b'u\xabZ\x8af\xa0{\xf8\xe9z\x06\xda\xb1\xee\xb8\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x02\x00\x00\x01\x00\x01\...
现在我想用这些像素创建原始图片,我天真的做法是:
with open("picture.jpg","wb") as f:
f.write(pixelstring)
然而,当我尝试打开图片时,文件似乎已损坏。我做错了什么?
另外我在网站的源代码中发现我得到的base64编码的图片宽度应该是250,高度应该是50。
你的字符串开头有一些无关的东西。 JPEG 文件开头为:
ff d8 ...
所以,假设:
str = b'u\xabZ\x8af\xa0{\xf8\xe9z\x06\xda\xb1\xee\xb8\xff\xd8\xff\xe0\x00\x10JFIF\x00...`
您需要获取 JPEG 文件开头的字节位置:
offset = str.find(b'\xff\xd8') # You should get "15"
然后写:
str[offset:]
到您的文件。
我使用以下代码行将 base64 编码的图片解码为一串像素:
pixelstring = base64.b64decode(imagencoded)
字符串看起来像这样:b'u\xabZ\x8af\xa0{\xf8\xe9z\x06\xda\xb1\xee\xb8\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x02\x00\x00\x01\x00\x01\...
现在我想用这些像素创建原始图片,我天真的做法是:
with open("picture.jpg","wb") as f:
f.write(pixelstring)
然而,当我尝试打开图片时,文件似乎已损坏。我做错了什么?
另外我在网站的源代码中发现我得到的base64编码的图片宽度应该是250,高度应该是50。
你的字符串开头有一些无关的东西。 JPEG 文件开头为:
ff d8 ...
所以,假设:
str = b'u\xabZ\x8af\xa0{\xf8\xe9z\x06\xda\xb1\xee\xb8\xff\xd8\xff\xe0\x00\x10JFIF\x00...`
您需要获取 JPEG 文件开头的字节位置:
offset = str.find(b'\xff\xd8') # You should get "15"
然后写:
str[offset:]
到您的文件。