我正在尝试导入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'''
答案 0 :(得分:3)
更仔细地阅读the documentation:
base64.decode(input, output)
解码二进制
input
文件的内容,并将生成的二进制数据写入output
文件。input
和output
必须是文件对象。在input
返回空的input.read()
对象之前,将会读取bytes
。
如果有的话,您应该使用base64.b64decode()
。
background_image = base64.b64decode(background_image.background_image)