将一串像素转换为图像 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:]

到您的文件。