如何调整Tkinter GUI第二个窗口内的图片尺寸
方案1:使用Tkinter内置方法(无需额外安装依赖)
Tkinter自带的PhotoImage提供subsample()方法可以按比例缩小图片,参数为x/y方向的缩小倍数,比如要缩小到原图的1/2,直接修改# !>>> IMAGE 2 位置的代码即可:
# !>>> IMAGE 2 (2nd window) # subsample(2,2)代表x、y方向都缩小为原来的1/2,可根据需求调整数值 photo = PhotoImage(file='4 Dry Out Logo.png').subsample(2, 2) label = Label(self.win,image=photo) label.image = photo # 图片引用必须保留,否则会出现图片不显示的问题 label.pack()
如果需要放大可以用zoom(倍数,倍数)方法,和subsample用法一致。
方案2:使用Pillow库实现任意尺寸精准调整
如果需要自定义精确的宽高尺寸,而非按比例缩放,推荐用Pillow库处理:
- 先安装依赖:
pip install pillow - 代码头部导入对应模块:
from PIL import Image, ImageTk
- 修改# !>>> IMAGE 2 位置的代码,替换为以下内容:
# !>>> IMAGE 2 (2nd window) # 先打开原图片 origin_img = Image.open('4 Dry Out Logo.png') # 调整为你想要的尺寸,这里示例是宽150,高40,可自行修改数值 resized_img = origin_img.resize((150, 40), Image.Resampling.LANCZOS) # 转成Tkinter可用的PhotoImage对象 photo = ImageTk.PhotoImage(resized_img) label = Label(self.win,image=photo) label.image = photo # 同样需要保留图片引用 label.pack()
注意:Image.Resampling.LANCZOS是高画质的缩放采样算法,如果你用的是Pillow9.0以下的版本,替换为Image.ANTIALIAS即可。
内容的提问来源于stack exchange,提问作者Lady
相关产品推荐
相关产品推荐

