Display an Image from the Web (Tkinter)


Simple code to show you how to display an image from a Web URL using the Tkinter Python GUI toolkit, the Python Image Library (PIL) and the data_stream created with io.BytesIO().

''' tk_image_view_url_io.py
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 = tk.Tk()

# find yourself a picture on an internet web page you like
# (right click on the picture, under properties copy the address)
#url = "http://www.google.com/intl/en/images/logo.gif"
# or use image previously downloaded to tinypic.com
#url = "http://i48.tinypic.com/w6sjn6.jpg"
url = "http://i50.tinypic.com/34g8vo5.jpg"

image_bytes = urlopen(url).read()
# internal data file
data_stream = io.BytesIO(image_bytes)
# open as a PIL image object
pil_image = Image.open(data_stream)

# 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)


Has anyone used the PIL fork Pillow and is there any reason to change?


Looks like Pillow is not available for Python3


I was able to install pillow 2.0.0 in Windows Python 3.3 using the exe installer and run this program.

Howver I can not get it to work under Ubuntu/python3.3 using source nor egg. Pillow appears to install and does announce [selftest.py] that JPEG support is available, but then there is a runtime error

builtins.OSError: decoder jpeg not available

Any ideas what I'm doing wrong ?

Verify Package: PIL.path


For Python27 and Python33 I have recently used PIL fork Pillow from:
Windows installer:
Pillow-2.0.0.win32-py2.7.exe or
documents at:

Things seem to work well, no neeed to change code.

Thanks to rwe0 for the fix with Linux.

Isn't it about time forums rewarded their contributors?

Earn rewards points for helping others. Gain kudos. Cash out. Get better answers yourself.

It's as simple as contributing editorial or replying to discussions labeled or OP Kudos

This is an OP Kudos discussion and contributors may be rewarded
Start New Discussion
View similar articles that have also been tagged: