1

私はいくつかの助けを必要とし、私が表示したい後Tkinterの枕操作

は、Tkinterの中にスライダーを表示するコードが続き

from Tkinter import * 

def show_values(): 
    print (w1.get(), w2.get()) 

master = Tk() 
w1 = Scale(master, from_=0, to=42) 
w1.pack() 
w2 = Scale(master, from_=0, to=200, orient=HORIZONTAL) 
w2.pack() 
Button(master, text='Show', command=show_values).pack() 

mainloop() 

はフィルタコード

from PIL import ImageFilter 
im2 = im.filter(ImageFilter.MinFilter(3)) 

ですMinFilter()に渡された引数がスライダをスクロールしてイメージが更新されるときに変更されるように動的にフィルタリングします。誰でも助けてくれますか?

+0

'スケール(...、コマンド= show_values)' – furas

答えて

2
Scale

スケールからの電流値と

import Tkinter as tk 
from PIL import Image, ImageTk, ImageFilter 


def show_value_1(value): 
    print('v1:', value) 

    # filter image 
    img = image.filter(ImageFilter.MinFilter(int(value))) 

    # create new photo 
    photo = ImageTk.PhotoImage(img) 

    # update image in label 
    l['image'] = photo 

    # PhotoImage has to be assigned to global variable - problem with "garbage collector" 
    l.photo = photo 


def show_value_2(value): 
    print('v2:', value) 


master = tk.Tk() 

image = Image.open("ball-1.png") 
photo = ImageTk.PhotoImage(image) 

l = tk.Label(master, image=photo) 
l.pack() 
l.photo = photo 

w1 = tk.Scale(master, from_=1, to=42, command=show_value_1) 
w1.pack() 

w2 = tk.Scale(master, from_=1, to=200, orient=tk.HORIZONTAL, command=show_value_2) 
w2.pack() 

master.mainloop() 

ボール1.png

enter image description here

+0

おかげ機能を実行command=を有しますトン。私はl = tk.Label()とl.photo = photoはガベージリファレンスの余分なコピーであることが分かります。あれは正しいですか?私はhttp://effbot.org/tkinterbook/photoimage.htmを見つけました。私は今夜コードを試します。 –

+0

はい、effbot.orgへのリンクに記載されているガベージコレクタの問題が原因です。 – furas

+0

ありがとう。コードは機能します。 –