PhotoImage
Você pode usar a classe PhotoImage sempre que você precisar exibir um ícone ou uma imagem em um aplicativo Tkinter. A classe PhotoImage é usada para exibir imagens (ou em tons de cinza ou imagens de cor real) em etiquetas, botões, telas e widgets de texto. Se você precisa trabalhar com outros formatos de arquivo, o Python Imaging Library (PIL) contém classes que permite carregar imagens em mais de 30 formatos e convertê-los em objetos de imagem compatíveis com Tkinter.
O PhotoImage também pode ler arquivos GIF base64-codificado em Strings. Você pode usar isso para incorporar imagens no código fonte Python.
Como Instalar o PIL – Ubuntu 64
Para Instalar o Python Imaging Library (PIL) digite os seguintes comandos no terminal do Linux:
sudo apt-get build-dep python-imaging sudo apt-get install libjpeg62 libjpeg62-dev sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/libz.so sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.so sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/libfreetype.so sudo apt-get install python-pip sudo pip install PIL sudo apt-get install python-imaging-tk
Exemplo:
Neste exemplo carregamos uma imagem cujo sua fonte é uma Url da internet e a exibimos em um componente de imagem.
Python
#!/usr/bin/env python
# -*- coding: latin-1 -*-
# Desenvolvimento Aberto
# PhotoImage.py
# importa modulo
from Tkinter import *
from PIL import Image, ImageTk
# importa url e IO
import urllib2 as urllib
import cStringIO
# Cria formulario
formulario = Tk()
formulario.title = "Desenvolvimento Aberto"
# Cria componentes
rotulo = Label(formulario, text = "Imagem - Python Imaging Library")
# Cria Url
url = urllib.urlopen("https://desenvolvimentoaberto.org/wp-content/uploads/2014/04/images.jpg")
# Lê imagem da url
figura = cStringIO.StringIO(url.read())
# carrega a imagem
imagem = Image.open(figura)
# joga a imagem para o componente
foto = ImageTk.PhotoImage(imagem)
# Exibi a imagem
pic = Label(formulario, image = foto)
# Posiciona componentes
rotulo.pack(padx=20)
pic.pack(padx=20, pady=10)
# Loop do tcl
mainloop()


