繁体   English   中英

Python Tkinter代码不起作用

[英]Python tkinter code doesn't work

我是编程新手,最近开始使用python进行编码。 我正在使用一本教科书,其中带有示例程序的代码。 以下代码来自该书,应该通过根据亮度(RGB值的总和)为每个像素分配黑色或白色来将彩色图片转换为黑白图片。

    from tkinter import *
    def black_white ():
average = 382.5
for x in range (image.width()):
    for y in range (image.height()):
        c = image.get(x, y)
        brightness = int(c[0]) + int(c[1]) + int(c[2])
        if brightness < average:
            image.put("black", (x))
        else:
            image.put("white", (x))

     window = Tk()
    image = PhotoImage(file="1.gif")
    button = Button(master=window, command=black_white,
            font=("Arial", 14),
            text="Bearbeiten")

    label = Label(master=window, image=image)
    label.pack()
    button.pack(fill=X)
    window.mainloop()

但是,代码不起作用,我收到的错误消息是:

    Exception in Tkinter callback
    Traceback (most recent call last):
      File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/tkinter/__init__.py", line 1550, in __call__
return self.func(*args)
      File "/Users/(anonymous)/Desktop/programmieren/raspberry_lehrbuch/schwarzweiß.pyw", line 8, in black_white
brightness = int(c[0]) + int(c[1]) + int(c[2])
    ValueError: invalid literal for int() with base 10: ' '

我已经进行了一些研究,但找不到任何使其起作用的方法。 非常感谢您的帮助:)哦,我和el capitan一起使用macbook pro 2010

(x)更改为(x,y) ,必须在位置x, y

from tkinter import *


def black_white():
    average = 382.5
    for x in range(image.width()):
        for y in range(image.height()):
            c = image.get(x, y)
            brightness = int(c[0]) + int(c[1]) + int(c[2])
            if brightness < average:
                image.put("black",  (x, y))
            else:
                image.put("white", (x, y))


window = Tk()
image = PhotoImage(file="1.gif")
button = Button(master=window, command=black_white,
                font=("Arial", 14),
                text="Bearbeiten")

label = Label(master=window, image=image)
label.pack()
button.pack(fill=X)
window.mainloop()

点击之前:

在此处输入图片说明

点击后:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM