1,105,534 Community Members

Display an Image from the Web (Tkinter)

Member Avatar
Reputation Points: 1,544 [?]
Q&As Helped to Solve: 1,872 [?]
Skill Endorsements: 67 [?]
 
3
 

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
try:
    # 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)
root.title(sf)

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

root.mainloop()
Member Avatar
woooee
Posting Maven
2,798 posts since Dec 2006
Reputation Points: 783 [?]
Q&As Helped to Solve: 836 [?]
Skill Endorsements: 12 [?]
 
0
 

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

Member Avatar
sneekula
Nearly a Posting Maven
2,496 posts since Oct 2006
Reputation Points: 917 [?]
Q&As Helped to Solve: 263 [?]
Skill Endorsements: 5 [?]
 
0
 

Looks like Pillow is not available for Python3

Member Avatar
rwe0
Newbie Poster
17 posts since Aug 2012
Reputation Points: 13 [?]
Q&As Helped to Solve: 1 [?]
Skill Endorsements: 0 [?]
 
1
 

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
['/usr/local/lib/python3.3/dist-packages/Pillow-2.0.0-py3.3-linux-i686.egg/PIL']

Member Avatar
vegaseat
DaniWeb's Hypocrite
6,984 posts since Oct 2004
Reputation Points: 1,544 [?]
Q&As Helped to Solve: 1,872 [?]
Skill Endorsements: 67 [?]
Moderator
 
0
 

For Python27 and Python33 I have recently used PIL fork Pillow from:
https://pypi.python.org/pypi/Pillow/2.0.0
Windows installer:
Pillow-2.0.0.win32-py2.7.exe or
Pillow-2.0.0.win32-py3.3.exe
documents at:
http://pillow.readthedocs.org/en/latest/

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

Thanks to rwe0 for the fix with Linux.
http://www.daniweb.com/software-development/python/threads/451398/pillow-install-problem-under-ubuntu#post1956618

You
Post:
Start New Discussion
View similar articles that have also been tagged: