Теперь у меня есть игра на питоне с спрайтами, и она получает изображения из файлов в ее каталоге. Я хочу сделать так, что мне даже не нужны файлы. Так или иначе, чтобы предварительно сохранить изображение в переменной, чтобы я мог вызвать его из программы, без помощи дополнительных файлов.gif
Фактический способ использования изображения
image = PIL.Image.open('image.gif')
Поэтому было бы полезно, если бы вы могли быть точными о том, как заменить этот код
Продолжая мысли о едеимаддани: вы можете сделать это вручную:
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.
Вот как вы можете открыть его с помощью 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()
img
будет псевдонимом?