在 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 并显示所有图像吗?

解决方法

是的,seller 有一个 resize(x,y) 方法可以将图像大小调整为给定的 width(x) 和 height(y)。

open

此处将图像调整为 400x400 方形图像并将这些对象附加到列表中,然后您使用 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)) 从列表中随机选择一个。 Read more about resize here

你也可以去掉 choice,只要它在函数之外。