无法将`base64.decode()`的输出分配给变量

时间:2014-11-23 14:11:25

标签: python

我正在尝试导入base 64编码图形以用作画布背景。根据{{​​3}},base64.decode有两个参数:输入和输出。我不明白如何将base64.decode()的输出分配给变量background_image。这些是有问题的两行代码:

background_image = base64.decode(background_image.background_image, x.png) 
canvas.create_image(0, 0, image=ImageTk.PhotoImage(file=background_image), anchor=NW)

这是我的简化程序的版本。

#imported modules
from tkinter import *
from PIL import ImageTk, Image
import base64

#imported files
import background_image # a .py file containing the base64 encoded graphic string 

'''...stuff'''

background_image = base64.decode(background_image.background_image, x.png) 
canvas.create_image(0, 0, image=ImageTk.PhotoImage(file=background_image), anchor=NW)

'''...more stuff'''

1 个答案:

答案 0 :(得分:3)

更仔细地阅读the documentation

base64.decode(input, output)
  

解码二进制input文件的内容,并将生成的二进制数据写入output文件。 inputoutput 必须是文件对象。在input返回空的input.read()对象之前,将会读取bytes

如果有的话,您应该使用base64.b64decode()

background_image = base64.b64decode(background_image.background_image)