Python 如何将base64字符串正确地转换为图像文件?

Python 如何将base64字符串正确地转换为图像文件?,python,image,python-3.x,base64,Python,Image,Python 3.x,Base64,您好,我正在尝试将base64字符串转换为图像文件,这很简单。这是我的密码 with open(os.path.join('avatars', avatar_filename), 'wb') as avatar_file: avatar_file.write(base64.decodebytes(avatar_b64)) 但问题是字符串是由客户端发送的,因此,我如何知道base64字符串是否对应于图像文件?最后,我决定使用python附带的imghdr库。因此,我将base64图像保存

您好,我正在尝试将base64字符串转换为图像文件,这很简单。这是我的密码

with open(os.path.join('avatars', avatar_filename), 'wb') as avatar_file:
    avatar_file.write(base64.decodebytes(avatar_b64))

但问题是字符串是由客户端发送的,因此,我如何知道base64字符串是否对应于图像文件?

最后,我决定使用python附带的imghdr库。因此,我将base64图像保存到一个文件中,然后检查该文件,以确定是否是如下所示的有效图像:

if imghdr.what(avatar_filename):
    print('is a image')
else:
    print('is not a image')

imghdr.what()函数返回图像的类型,因此,如果没有返回任何类型,我假设这不是图像。

您可以尝试此答案中的代码。是的,这和我的一样,但我不知道base64字符串是否对应于图像文件。可能重复解码它,然后使用某种图像库将其作为图像加载。如果失败,则不是图像。谢谢,如果没有返回任何格式,我使用imghdr检查图像的格式,这意味着这不是图像。