以tkinter方式调整图片大小



我想知道是否有一种方法来调整已加载到Tkinter标签小部件的图像的大小。我一直在尝试使用Tkinter制作一个骰子模拟器,它将显示骰子显示随机数的图像。问题是这些图像没有相似的大小。下面是程序的开始部分:

import tkinter as tk
from PIL import Image, ImageTk
from random import choice
root = tk.Tk()
root.title('Dice Simulator')
root.geometry('400x400')
root.resizable(0, 0)
dice = ['die1.jpg', 'die2.jpg', 'die3.jpg', 'die4.jpg', 'die5.jpg', 'die6.jpg']
DiceImage = ImageTk.PhotoImage(Image.open(choice(dice)))
ImageLabel = tk.Label(root, image=DiceImage)
ImageLabel.image = DiceImage
ImageLabel.pack(expand=True)
root.mainloop()

我们可以将图像大小调整为400x400并显示所有图像吗?

是的,open有一个resize(x,y)方法来调整图像到给定的宽度(x)和高度(y)。

dice = ['die1.jpg', 'die2.jpg', 'die3.jpg', 'die4.jpg', 'die5.jpg', 'die6.jpg']
resized_opened_img = [Image.open(x).resize((400,400),Image.ANTIALIAS) for x in dice]
DiceImage = ImageTk.PhotoImage(choice(resized_opened_img))

这里它将图像大小调整为400x400方形图像,并将这些对象附加到列表中,然后您使用choice随机从中选择一个。在这里阅读更多关于resize的信息

你也可以去掉ImageLabel.image = DiceImage,只要它是在函数之外。

相关内容

  • 没有找到相关文章

最新更新