display an image from a url using tkinter, pil and data_stream
tested with python27 and python33 by vegaseat 01mar2013
import io
# allows for image formats other than gif
from pil import image, imagetk
# python2
import tkinter as tk
from urllib2 import urlopen
except importerror:
# python3
import tkinter as tk
from urllib.request import urlopen
root =
# find yourself a picture on an internet web page you like
# (right click on the picture, under properties copy the address)
#url = “”
# or use image previously downloaded to
#url = “”
url = “”
image_bytes = urlopen(url).read()
# internal data file
data_stream = io.bytesio(image_bytes)
# open as a pil image object
pil_image =
# optionally show image info
# get the size of the image
w, h = pil_image.size
# split off image file name
fname = url.split(‘/’)[-1]
sf = “{} ({}x{})”.format(fname, w, h)
# convert pil image object to tkinter photoimage object
tk_image = imagetk.photoimage(pil_image)
# put the image on a typical widget
label = tk.label(root, image=tk_image, bg=’brown’)
label.pack(padx=5, pady=5)


Posted in 未分类