现在,我有一个带有精灵的python游戏,它会从其目录中的文件中获取图像。我要使它甚至不需要这些文件。以某种方式将图像预先存储在变量中,这样我就可以在程序中调用它,而无需其他.gif文件的帮助
我使用图像的实际方式是
image = PIL.Image.open('image.gif')
因此,如果您能准确地替换此代码,将很有帮助
答案 0 :(得分:3)
继续eatmeimdanish的想法:您可以手动进行:
import base64
with open('image.gif', 'rb') as imagefile:
base64string = base64.b64encode(imagefile.read()).decode('ascii')
print(base64string) # print base64string to console
# Will look something like:
# iVBORw0KGgoAAAANS ... qQMAAAAASUVORK5CYII=
# or save it to a file
with open('testfile.txt', 'w') as outputfile:
outputfile.write(base64string)
# Then make a simple test program
from tkinter import *
root = Tk()
# Paste the ascii representation into the program
photo = 'iVBORw0KGgoAAAANS ... qQMAAAAASUVORK5CYII='
img = PhotoImage(data=photo)
label = Label(root, image=img).pack()
虽然这是与tkinter PhotoImage一起使用的,但是我相信您可以弄清楚如何使其与PIL一起使用。
答案 1 :(得分:1)
在这里,您可以使用PIL打开它。您需要一个字节表示形式,然后PIL可以打开一个类似于其对象的文件。
import base64
from PIL import Image
import io
with open("picture.png", "rb") as file:
img = base64.b64encode(file.read())
img = Image.open(io.BytesIO(img))
img.show()