首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用类构造函数处理图像tkinter

使用类构造函数处理图像tkinter
EN

Stack Overflow用户
提问于 2020-08-20 22:35:48
回答 1查看 49关注 0票数 0

您好,我正在尝试创建一个类构造函数来处理tkinter中的图像,因为我将在我的代码中使用许多图像,所以我需要一种使用图像的方法,而不需要使用这么多行代码。

我一直收到错误:

代码语言:javascript
复制
   return _modes[mode]
KeyError: 'picture.png'

代码如下:

代码语言:javascript
复制
from tkinter import *
import tkinter
from random import randint

from PIL import Image
from PIL import ImageTk

root = tkinter.Tk()
root.geometry('700x700')

class PhotoHandler:
    def __init__(self,imagepath):
        self.imagepath = imagepath
        self.image = Image.open(self.imagepath)
        self.image = ImageTk.PhotoImage(self.imagepath)

    def returnn(self):
        return self.image

search = PhotoHandler('picture.png').returnn()

root.mainloop()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-20 22:47:15

您向tkinter图像传递了一个字符串。它需要一个PIL图像或模式。因为您传递了一个字符串,所以它认为您使用的是无效模式。而是传递图像:

代码语言:javascript
复制
class PhotoHandler:
    def __init__(self,imagepath):
        self.imagepath = imagepath
        self.image = Image.open(self.imagepath)
        self.image = ImageTk.PhotoImage(self.image)

    def returnn(self):
        return self.image

search = PhotoHandler('picture.png').returnn()

# add label for background image
background_label = tkinter.Label(root, image=search)
background_label.place(x=0, y=0, relwidth=1, relheight=1)

root.mainloop()

下面是文档:https://pillow.readthedocs.io/en/4.2.x/reference/ImageTk.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63507418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档