需要帮助将 JPG link 转换为 GIF 格式

Need help converting JPG link to GIF format

我正在尝试从网站获取图像以显示在标签小部件上,但 Tkinter 只接受 GIF 和 BMP 格式。我找到的几乎所有图像都是 JPG 或 PNG。 我现在的代码如下:

from urllib import urlopen
from Tkinter import *
from PIL import Image
import Tkinter as tk

root = Tk()

url = "http://www.wired.com/wp-  
content/uploads/2015/03/10182025tonedfull- 
660x441.jpg"
u = urlopen(url)
raw_data = u.read()
u.close()
import base64
b64_data = base64.encodestring(raw_data)
image = tk.PhotoImage(data=b64_data)
label = tk.Label(image=image)
label.pack()

root.mainloop()

我收到一条错误消息,说它无法识别图像。如果有人知道我该如何解决它,请告诉我。谢谢。

以下应允许您加载 JPG 文件:

from PIL import Image, ImageTk
from cStringIO import StringIO
from urllib import urlopen
from Tkinter import *
from PIL import Image
import Tkinter as tk

root = Tk()
url = "http://www.wired.com/wp-content/uploads/2015/03/10182025tonedfull-660x441.jpg"
u = urlopen(url)
raw_data = u.read()
u.close()

image_file = Image.open(StringIO(raw_data))
photo_image = ImageTk.PhotoImage(image_file)
label = tk.Label(image=photo_image)
label.pack()
root.mainloop()

不需要base64编码,但是需要ImageTk加载图片。这将显示如下:

您不能将 Jpg 与图像一起使用,您还必须导入 ImageTk

一个非常基本的工作示例可以是:

  import io
    from PIL import Image, ImageTk
    import Tkinter as tk
    from urllib2 import urlopen

    root = tk.Tk()
    url = "http://www.wired.com/wp-content/uploads/2015/03/10182025tonedfull-660x441.jpg"
    image_bytes = urlopen(url).read()
    data_stream = io.BytesIO(image_bytes)
    pil_image = Image.open(data_stream)
    tk_image = ImageTk.PhotoImage(pil_image)
    label = tk.Label(root, image=tk_image, bg='brown')
    label.pack(padx=5, pady=5)
    root.mainloop()