2015-01-28 3 views
2

Я ищу, чтобы получить изображение с URL-адреса, изменить его размер (соответствующим образом в графическом интерфейсе), а затем отобразить изображение в графическом интерфейсе. Я считаю, что у меня есть основная предпосылка ... или, по крайней мере, я знаю, как извлекать и отображать изображение. Я привел несколько примеров кода ниже.Изменить изображение url с помощью urllib и pil

import pywapi, pprint, string, urllib, io 
from Tkinter import * 
from PIL import Image, ImageTk 


root = Tk() 
root.geometry("1440x900+0+0") 
fd = urllib.urlopen("http://images.intellicast.com/WxImages/Radar/den.gif") 
imgFile = io.BytesIO(fd.read()) 
im = ImageTk.PhotoImage(Image.open(imgFile)) # <-- here 
image = Label(root, image = im, bd =2) 
image.grid(row = 8, column = 0, columnspan = 2, padx = 20, pady = 30) 

# This is just some working code for resizing an image from a url 
#fd = urllib.urlretrieve("http://images.intellicast.com/WxImages/Radar/den.gif", "den.gif") 
#im1 = Image.open("den.gif")  
#im_small = im1.resize((200, 200), Image.ANTIALIAS) 
#im_small.save("den.gif") 

root.mainloop() 

Таким образом, оба раздела кода работают, я просто не уверен, как их соответствующим образом комбинировать. Спасибо за ваше время!

ответ

3

Провод im_small до PhotoImage вместо Image.open.

fd = urllib.urlretrieve("http://images.intellicast.com/WxImages/Radar/den.gif", "den.gif") 
im1 = Image.open("den.gif")  
im_small = im1.resize((200, 200), Image.ANTIALIAS) 

im = ImageTk.PhotoImage(im_small) 
image = Label(root, image = im, bd =2) 
image.grid(row = 8, column = 0, columnspan = 2, padx = 20, pady = 30) 
Смежные вопросы