【问题标题】:I Cant get an image to be resized and displayed using tkinter我无法使用 tkinter 调整图像大小和显示
【发布时间】:2018-05-13 16:29:51
【问题描述】:

所以我试图制作一个显示图像的应用程序,我拥有的图像是 1000*1000 但这太大了,我需要一种调整图像大小的方法。我尝试过使用 PIL 和 ImageTK,但没有奏效,这是我目前的代码:

from tkinter import *

app = Tk()
app.title('embeded image')

fname = Canvas(bg = 'black', height=100, width=100)
fname.pack(side=TOP)

image = PhotoImage('Sun.png')
image = image.resize((25, 25), Image.ANTIALIAS)

icon = fname.create_image(image=image)

fname.pack()
app.mainloop()

我不知道为什么这不起作用,我对 Tkinter 比较陌生,如果很明显,我很抱歉。

【问题讨论】:

  • 您是否在控制台中运行以查看错误消息?它表明image 没有resize() 方法。 tkinterPhotoImage 来显示图像,它没有 resize(),而 PILImageresize() - 所以你混合了两个不同的元素。

标签: python image tkinter python-imaging-library


【解决方案1】:

你在tkinter 中混合了两个不同的类PhotoImage 没有resizePIL.Imageresize

import tkinter as tk
from PIL import Image, ImageTk

app = tk.Tk()

fname = tk.Canvas(height=200, width=200)
fname.pack()

pil_image = Image.open('Sun.png')
pil_image = pil_image.resize((25, 25), Image.ANTIALIAS)

image = ImageTk.PhotoImage(pil_image)
icon = fname.create_image((0,0), image=image, anchor='nw')

app.mainloop()

【讨论】:

  • 如果我尝试这个,它会返回:没有名为 ImageTk 的模块,就像我上面说的我尝试了 ImageTk 但它没有工作,你有任何关于我如何安装它的信息吗?上网查了一下,这方面的资料并不多。
  • 你没有说为什么它不起作用 - 所以我假设你有它,但你不知道必须使用它。使用pip install pillow安装Pillow
猜你喜欢
  • 2013-08-21
  • 1970-01-01
  • 1970-01-01
  • 2011-06-16
  • 1970-01-01
  • 2021-01-24
  • 2018-01-12
  • 1970-01-01
  • 2015-04-12
相关资源
最近更新 更多