[英]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.