python - 在 python/Tkinter 中显示来自 URL 的图像
问题描述
我正在开发一个天气应用程序并添加一些我正在考虑添加天气地图的香料,因此访问了https://openweathermap.org/api/weathermaps并获得了带有图像的 URL。我研究了许多在 Tkinter Widget 上显示该图像的方法,但它们都不起作用。它显示图像的大小,但不显示图像本身。这是我的代码。非常感谢你。
from tkinter import *
from PIL import ImageTk, Image
import requests
import urllib.request
import base64
root = Tk()
root.title("Weather")
link = "https://tile.openweathermap.org/map/pressure_new/0/0/0.png?appid={APIkey}"
class WebImage:
def __init__(self,url):
u = urllib.request.urlopen(url)
raw_data = u.read()
u.close()
self.image = PhotoImage(data=base64.encodebytes(raw_data))
def get(self):
return self.image
img = WebImage(link_6).get()
imagelab = Label(root, image = img)
imagelab.grid(row = 0, column = 0)
root.mainloop()
解决方案
在这里试试这个:
from tkinter import *
from PIL import ImageTk, Image
import requests
from io import BytesIO
root = Tk()
root.title("Weather")
link = "yourlink/image.jpg"
class WebImage:
def __init__(self,url):
u = requests.get(url)
self.image = ImageTk.PhotoImage(Image.open(BytesIO(u.content)))
def get(self):
return self.image
img = WebImage(link).get()
imagelab = Label(root, image = img)
imagelab.grid(row = 0, column = 0)
root.mainloop()
推荐阅读
- symfony - Symfony 捆绑注册
- javascript - 维护实时 HTMLCollection 的性能成本是多少?
- android - 颤动AndroidManifest警告-当前最小值为1
- android - 在解析 XML 时,如何在 Android 中使用 XmlPullParser 正确处理命名空间?
- node.js - 如何使用 Node.js 读取大文件的一部分?
- javascript - 如何使用三个返回变量中的特定变量?
- ios - 情节提要中的 UILabel 使用 U+2028 字符将文本分隔到两行,在一台设备上呈现垃圾
- ruby-on-rails - 警告:已经在 config/routes.rb 中初始化了常量
- javascript - 如何删除x和y轴上的数字?
- spring-boot - 有没有办法在Springboot中调用没有@enableWebMvc的异常处理程序方法