首页 > 解决方案 > 如何使用 PIL 中的 ImageTk/Image 调整图像大小

问题描述

这是完整的代码

import tkinter as tk
from PIL import ImageTk, Image

def hide_screen():
    window.overrideredirect(0)
    window.iconify()

def screen_appear(event):
    window.overrideredirect(1)

def callback(event):
    window.geometry("+{0}+{1}".format(event.x_root,event.y_root))

window = tk.Tk()
window.geometry("400x200")
window.overrideredirect(True)

title_bar = tk.Frame(window, bg="#2c2c2c", bd=0)

title_bar_logo = ImageTk.PhotoImage(Image.open("title_bar_logo.png"))
title_bar_logo = ImageTk.resize((250, 250), Image.ANTIALIAS)
panel = tk.Label(title_bar, image=title_bar_logo)
label1 = tk.Label(title_bar, text="Title Bar", fg="gold2", bg="#2c2c2c", font="Times")
close_button = tk.Button(title_bar, text="X", bg="red", command=window.destroy, bd=0)
minimise_button = tk.Button(title_bar, text="-", bg="red", command=hide_screen, bd=0)

window2 = tk.Canvas(window, bg="#1b1b1b", highlightthickness=0)

title_bar.pack(fill="x")
panel.pack(side=tk.LEFT)
close_button.pack(side=tk.RIGHT)
minimise_button.pack(side=tk.RIGHT)
window2.pack(expand=1, fill="x")
label1.pack(anchor=tk.CENTER)

title_bar.bind("<Map>", screen_appear)
title_bar.bind("<B1-Motion>", callback)
window.mainloop()

这是图像线

title_bar_logo = ImageTk.PhotoImage(Image.open("title_bar_logo.png"))
title_bar_logo = ImageTk.resize((250, 250), Image.ANTIALIAS)
panel = tk.Label(title_bar, image=title_bar_logo)
panel.pack(side=tk.LEFT)

我已经尝试了很多东西,但我无法让它工作,我真的希望你能为我找到答案

先感谢您

标签: pythonpython-3.xtkinterpython-imaging-library

解决方案


我以它为例,它运行良好:

logo = Image.open("title_bar_logo.png")
logo = logo.resize((20,15), Image.ANTIALIAS)
title_bar_logo=ImageTk.PhotoImage(logo)

利用 :

title_bar_logo

在你的代码中


推荐阅读