PhotoImage
A classe PhotoImage do módulo Tkinter, permite carregar e visualizar imagens, nos formatos .gif, .pgm ou .ppm, nos componentes Label, Button, Canvas e Text.
Carregar imagem a partir de um ficheiro
O construtor de PhotoImage abaixo permite carregar uma imagem a partir de um ficheiro.
tk.PhotoImage(file=ficheiro_imagem)
Basta fornecer ao argumento file o caminho do ficheiro da imagem ficheiro_imagem
Exemplo:
from tkinter import *
mainWindow = Tk()
frame = Frame(mainWindow, width=400, height=600, background='white')
frame.pack_propagate(0)
frame.pack()
img = PhotoImage(file='logo.gif')
lbl = Label(parent, image=img)
lbl.pack()
Carregar imagem a partir de uma string base-64
O construtor de PhotoImage abaixo permite carregar uma imagem a partir de uma string codificada em base-64.
tk.PhotoImage(data=string_codificada_em_base64)
Basta fornecer ao argumento data uma string codificada em base-64, a partir de uma imagem.
Podemos codificar um ficheiro de uma imagem numa string codificada em base-64, usando funções do módulo base64.
Exemplo 1:
import Tkinter as tk
image_data = '''
R0lGODlhEAAQALMAAAAAAP//AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAA\nAAAAACH5BAEAAAIALAAAAAAQABAAQAQ3UMgpAKC4hm13uJnWgR
TgceZJllw4pd2Xpagq0WfeYrD7\n2i5Yb+aJyVhFHAmnazE/z4tlSq0KIgA7\n
'''
mainWindow = tk.Tk()
img = tk.PhotoImage(data=image_data)
lbl = tk.Label(mainWindow, image=img, padx=10, pady=10)
lbl.pack()
mainWindow.mainloop()
Exemplo 2:
import base64
import tkinter as tk
with open("caminho/da/imagem.png", "rb") as fich_imagem:
string_da_imagem_codificada_em_base64 = base64.b64encode(fich_imagem.read())
root = tk.Tk()
img = PhotoImage(data=string_da_imagem_codificada_em_base64)
tk.Label(root, image=img).pack()
root.mainloop()