【问题标题】:Display jpg images in python在python中显示jpg图像
【发布时间】:2010-11-24 06:48:28
【问题描述】:

我正在创建一个简单的工具来将专辑封面图片添加到 python 中的 mp3 文件。到目前为止,我只是在向亚马逊发送带有艺术家和专辑标题的请求,并获取结果列表,以及为每个结果查找实际图像。我想要做的是显示一个简单的框架,每个图像都有一个按钮/链接,以及一个跳过/取消按钮。

我进行了一些谷歌搜索,但找不到可以用作基础的示例。

  1. 我想直接显示来自网络的图像。 IE。使用 urllib 打开字节并将其读入内存,而不是通过磁盘上的文件
  2. 我希望最好将图像显示为按钮

所有示例似乎都专注于处理磁盘上的文件,而不是仅使用缓冲区。 python 标准库中的 TK 文档似乎没有涵盖基本的 Button 小部件。这似乎是一项简单的任务,但我还没有找到合适的文档。

【问题讨论】:

  • 你只写你想要的,没有问题。

标签: python tkinter


【解决方案1】:

您可以使用urllib.urlopen() 修改this。但我不知道(因为我还没有测试过)你是否可以在不将(图像)文件保存在本地的情况下执行此步骤。但恕我直言urlopen 返回一个可在tk.PhotoImage() 中使用的文件句柄。

对于 PhotoImage 中的 jpg 文件,您需要 PIL:

from PIL import Image, ImageTk
image = Image.open("test.jpg")
photo = ImageTk.PhotoImage(image)

【讨论】:

  • 我必须运行 sudo apt-get install python-imaging-tk 才能使 ImageTk 导入工作
  • RuntimeError: Too early to create image,不管是什么意思
【解决方案2】:

要在 Python 中显示 jpg,请查看 PIL

【讨论】:

  • PIL 用于处理图像。实际显示结果时很糟糕。事实上,PILImage.show() 方法将图像数据保存到一个临时文件并调用外部程序来显示。
猜你喜欢
  • 1970-01-01
  • 2010-11-17
  • 2023-03-15
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 2021-06-28
  • 2019-05-27
相关资源
最近更新 更多