1

我想使用 TKinter 调整图像大小。请注意,我不会为此使用 PIL。

我目前如何拥有此图像,效果很好。

logo = PhotoImage(file="logo_dribbble-01_1x.PNG")
label = Label(f1,image=logo, borderwidth=0, highlightthickness=0)
label.pack()

logo_dribbble-01_1x.PNG

我想调整此图像的大小,使徽标看起来更小。

我试过这样做,这是建议here

smallLogo = PhotoImage(file="logo_dribbble-01_1x.PNG")
smallLogo = smallLogo.subsample(2, 2)
smallLabel = Label(f1,image=smallLogo, borderwidth=0, highlightthickness=0)
smallLabel.pack()

但这会创建一个空标签而不显示图像。

我尝试使用 Photoshop 调整图像大小并使用该图像,然后使用该 .png 图像显示较小的图像,如下所示:

logo = PhotoImage(file="logo_dribbble-01_1xsmall.PNG")
smallLabel = Label(f1,image=smallLogo, borderwidth=0, highlightthickness=0)
smallLabel.pack()

logo_dribbble-01_1xsmall.PNG

但是,当我尝试运行代码时出现此错误 _tkinter.TclError: encountered an unsupported criticial chunk type "mkBF"

我该如何解决这个问题?

4

3 回答 3

0

以下代码对我有用:

from tkinter import *

f1 = Tk()
smallLogo = PhotoImage(file="image.PNG")
smallLogo = smallLogo.subsample(2, 2)
smallLabel = Label(f1,image=smallLogo, borderwidth=0, highlightthickness=0)
smallLabel.pack()
f1.mainloop()

注意我在 tk-8.6

于 2018-01-19T11:01:01.997 回答
0

我必须保留标签正在使用的图像的参考,如下所示:

logo = PhotoImage(file="image.png")
logo = logo.subsample(2, 2)
label = Label(root,image=logo, borderwidth=0, highlightthickness=0)
label.image = logo
label.pack()
于 2018-01-19T12:46:22.023 回答
0
smallLogo = PhotoImage(file="logo_dribbble-01_1x.PNG")
smallLogo_one = smallLogo.subsample(2, 2)
smallLabel = Label(f1,image=smallLogo_one, borderwidth=0, highlightthickness=0)
smallLabel.pack()

我认为这将为您解决问题。PhotoImage 的变量与 Subsample 的变量相同,可以为您修剪图像。我将 subsample 的变量更改为 smallLogo_one 并将其解析为 Lable 中的图像属性。

于 2018-01-19T14:34:41.397 回答