私がやりたいのは、2つの画像でウィンドウを開くことです(一方の画像はもう一方の画像の正確なコピーです)。次に、ボタンをクリックすると、右側の画像が変わります。これが理にかなっていることを願っています。私が持っていないコードは次のとおりです。
from __future__ import division
from Tkinter import *
from PIL import Image, ImageTk, ImageFilter
import random
class MyApp(object):
def __init__(self):
self.root = Tk()
self.root.wm_title("Image examples")
img = Image.open("lineage.jpg").convert("RGB")
(w, h) = (img.size[0], img.size[1])
print (w, h)
tkpi = ImageTk.PhotoImage(img)
label = Label(self.root, image=tkpi)
label.grid(row=0, column=0, padx=5, pady=5, rowspan=10)
img2 = img.copy()
pixels = img2.load()
tkpi2 = ImageTk.PhotoImage(img2)
label = Label(self.root, image=tkpi2)
label.grid(row=0, column=1, padx=5, pady=5, rowspan=10)
Button(self.root, text="Brighten", command=self.brighten).grid(row=0, column= 2)
self.root.mainloop()
def brighten(self):
self.pixels = self.pixels.point(lambda x: x*1.9)
MyApp()
私がしようとしているのは、ボタンimg2
をクリックしたときに更新されることbrighten
です。今試してみると、次のエラーが発生します。
File "C:\Users\Admin\Desktop\imageeditor.py", line 36, in brighten
self.pixels = self.pixels.point(lambda x: x*1.9)
AttributeError: 'MyApp' object has no attribute 'pixels'
あなたが言うことができるように、私はプログラミングに不慣れなので、正しい軌道に私を送るためのどんな助けも素晴らしいでしょう。