Tkinter对照片变幻无常,有些是空白,有些则不是

时间:2015-05-07 06:16:16

标签: python python-2.7 tkinter python-imaging-library

注意:主要问题尚未解决,但代码可以在Windows PC上运行,问题与我正在使用的计算机有关。

正如标题所暗示的那样,在我的代码中,一个图像完全正常,但另一个图像无法正确显示。

我觉得我忽略了一些非常明显的事情,无论如何,这是我遇到问题的代码段。

    Dataset Final
    Id     Sports   Lunch     Lab
     1      33       83       33 
     .      .
     3564   98       34       56

如果您要运行此代码,您会发现url1将显示一个空白窗口,但url2将显示该图像。

1 个答案:

答案 0 :(得分:0)

以下代码在Python 3中适用于我,显示图像就好了。

from tkinter import *
from PIL import Image,ImageTk
import urllib.request
import io

url1 = 'https://lh3.googleusercontent.com/-bnh6_0GlqbA/VUKUsl1Pp9I/AAAAAAACGoM/Vx9yu1QGIKQ/s650/Sunset.png'
url2 = 'https://lh3.googleusercontent.com/-_J57qf7Y9yI/VUPaEaMbp9I/AAAAAAACGuM/3f4551Kcd0I/s650/UpsideDawn.png'

window = Tk()

imagebytes = urllib.request.urlopen(url1).read()
imagedata = io.BytesIO(imagebytes)
imagePIL = Image.open(imagedata)
imageready = ImageTk.PhotoImage(imagePIL)

imagelabel = Label(window, image = imageready)
imagelabel.image = imageready

imagelabel.pack()
window.mainloop()

以下是我对上述Python 2版本的最佳猜测:

from Tkinter import *
from PIL import Image,ImageTk
from urllib import urlopen
import io # try this

url1 = 'https://lh3.googleusercontent.com/-bnh6_0GlqbA/VUKUsl1Pp9I/AAAAAAACGoM/Vx9yu1QGIKQ/s650/Sunset.png'
url2 = 'https://lh3.googleusercontent.com/-_J57qf7Y9yI/VUPaEaMbp9I/AAAAAAACGuM/3f4551Kcd0I/s650/UpsideDawn.png'

window = Tk()

imagebytes = urlopen(url1).read()
imagedata = io.BytesIO(imagebytes) # use bytesio instead of stringio
imagePIL = Image.open(imagedata)
imageready = ImageTk.PhotoImage(imagePIL)

imagelabel = Label(window, image = imageready)
imagelabel.image = imageready

imagelabel.pack()
window.mainloop()