Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 调整PIL图像大小:值错误:未知重采样过滤器_Python_Python 3.x_Python Imaging Library - Fatal编程技术网

Python 调整PIL图像大小:值错误:未知重采样过滤器

Python 调整PIL图像大小:值错误:未知重采样过滤器,python,python-3.x,python-imaging-library,Python,Python 3.x,Python Imaging Library,所以我试图用Tkinter用python制作一个类似桌面的界面,我试图设置墙纸,但我不知道如何调整它的大小。代码如下: from tkinter import * import tkinter.messagebox as box import webbrowser from PIL import Image, ImageTk window=Tk() window.title('Label Example') window.configure(background = 'gray44') #-

所以我试图用Tkinter用python制作一个类似桌面的界面,我试图设置墙纸,但我不知道如何调整它的大小。代码如下:

from tkinter import *
import tkinter.messagebox as box
import webbrowser
from PIL import Image, ImageTk

window=Tk()
window.title('Label Example')
window.configure(background = 'gray44')

#---=Main_Frame=---#
main_frame = Frame(window)
main_frame.pack(padx = 600, pady=350)

#---=Wallpaper=---#
img_wallpaper = ImageTk.PhotoImage(Image.open('minecraft main picture.gif').resize(10, 10)) # the one-liner I used in my app
label_w = Label(window, image=img_wallpaper)
label_w.image = img_wallpaper # this feels redundant but the image didn't show up without it in my app
label_w.pack()
##wallpaper_image = PhotoImage(file = 'minecraft main picture.gif')
##wallpaper = Label(window, image= wallpaper_image, width=400, height = 400)
##wallpaper_image_big = PhotoImage.subsample(wallpaper_image, x=1, y=1)
##can_wallpaper = \
##Canvas(window, width = 1200, height = 700)
##can_wallpaper.create_image((100, 100), image = wallpaper_image)
##can_wallpaper.place(x=0, y =0)
window.mainloop() #Main loop
我曾尝试使用其他人的代码来调整它与PIL枕头,但它不工作

以下是错误:

Traceback (most recent call last):
  File "/Users/edwardandreilucaciu/Desktop/Desktop Interface Project/Desktop Interface.py", line 16, in <module>
    img_wallpaper = ImageTk.PhotoImage(Image.open('minecraft main picture.gif').resize(10, 10)) # the one-liner I used in my app
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/PIL/Image.py", line 1865, in resize
    message + " Use " + ", ".join(filters[:-1]) + " or " + filters[-1]
ValueError: Unknown resampling filter (10). Use Image.NEAREST (0), Image.LANCZOS (1), Image.BILINEAR (2), Image.BICUBIC (3), Image.BOX (4) or Image.HAMMING (5)
回溯(最近一次呼叫最后一次):
文件“/Users/edwardandrelucaciu/Desktop/Desktop Interface Project/Desktop Interface.py”,第16行,在
img_wallper=ImageTk.PhotoImage(Image.open('minecraft main picture.gif')。resize(10,10))#我在应用程序中使用的一行代码
文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/PIL/Image.py”,第1865行,调整大小
消息+“使用“+”、“.join(筛选器[:-1])+”或“+筛选器[-1]
ValueError:未知的重采样筛选器(10)。使用Image.NEAREST(0)、Image.LANCZOS(1)、Image.BILINEAR(2)、Image.BICUBIC(3)、Image.BOX(4)或Image.HAMMING(5)
问题:如何在Tkinter中调整图像大小

用法


其实很简单

img_wallpaper = ImageTk.PhotoImage(Image.open('minecraft main picture.gif').resize(10, 10))
您知道。调整大小对于ImageTk图像对象也不可用。调整大小需要宽度和高度的元组 试试这个


label\u w.image=img\u wallpaper#这感觉很冗余
tkinter
具有
OOP
api,如果在继承的
类ImageLabel(tk.label)中执行此操作:
您不必分配它两次。Read@stovfl:需要将对映像的引用保留在某个位置,否则映像将被垃圾收集。实例化
标签
时,将其指定给
图像
属性是不够的。这是tkinter的一个怪癖。当你说你尝试了别人的代码,但它不起作用时,“不起作用”是什么意思?程序崩溃了吗?它是否将其调整到了错误的大小?其他内容?“ValueError:Unknown resampling filter(10)”:参数的类型必须为
tuple
,请参见我的答案,更改为
调整大小((10,10))
class App(tk.Tk):
    def __init__(self):
        super().__init__()

        lab=ImageLabel(self, 
                       path="minecraft main picture.gif", 
                       resize=(400, 400))
        lab.grid()

if __name__ == '__main__':
    App().mainloop()
img_wallpaper = ImageTk.PhotoImage(Image.open('minecraft main picture.gif').resize(10, 10))
img_wallpaper = Image.open('minecraft main picture.gif').resize((10,10))
img_wallpaper = ImageTk.PhotoImage(img_wallpaper)