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

Posted

技术标签:

【中文标题】需要帮助将 JPG 链接转换为 GIF 格式【英文标题】:Need help converting JPG link to GIF format 【发布时间】:2016-01-05 18:10:53 【问题描述】:

我正在尝试从网站获取图像以显示在标签小部件上,但 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()

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

【问题讨论】:

在 tcl/tk 8.6+ 中,PhotoImage 也适用于 .png 文件,但其他任何东西仍然需要 PIL 或枕头。 8.6 附带 3.4、3.5 PSF Windows 安装程序、一些 Linux 系统和一些备用 Mac 安装程序。 【参考方案1】:

以下内容应该可以让您加载 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 来加载图像。这将显示如下:

【讨论】:

【参考方案2】:

你不能使用带图像的 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()

【讨论】:

以上是关于需要帮助将 JPG 链接转换为 GIF 格式的主要内容,如果未能解决你的问题,请参考以下文章

如何把动态jpg图片转成gif?

将不同的图片格式(jpg、gif、png等)转换为TIFF格式

图片格式怎么转换成gif格式

怎样把图片转换成 gif,png,jpg,jpeg格式

在线转换怎样将CAD文件转JPG格式?

怎么样将视频转换成gif?