ImageTk kütüphanesi tam anlamıyla bilmiyorum konuyu açtıktan sonra araştırıp sonucu buldum.
import random
import tkinter as tk
from PIL import ImageTk, Image
def get_random_string(length):
sample_letters = 'abcdefghi'
result_str = ''.join((random.choice(sample_letters) for i in range(length)))
print("String:", result_str)
return result_str
def image_change(size,tag,file):
globals()[tag] = ImageTk.PhotoImage(Image.open(file).resize((size,size)))
canvas.itemconfig(tag, image=globals()[tag])
def img_creator(file):
string = get_random_string(length=10)
globals()[string] = ImageTk.PhotoImage(Image.open(file))
canvas.create_image(0, 0, image=globals()[string], anchor="nw",tag=globals()[string])
for seq in ["<Button-1>"]:
canvas.tag_bind(
tagOrId=globals()[string],
sequence=seq,
func= lambda event: image_change(tag=globals()[string],size=30,file=file))
#
root = tk.Tk()
root.geometry("400x400")
canvas = tk.Canvas(master=root,width=500,height=500,bg="green")
canvas.pack()
img_creator(file="resimler\\arkaplan.png")
img_creator(file="resimler\\kapat.png")
root.mainloop()
Aslında random string üretme bölümünü de kaldırıp daha da kısalttım
import random
import tkinter as tk
from PIL import ImageTk, Image
def image_change(size,tag,file):
globals()[tag] = ImageTk.PhotoImage(Image.open(file).resize((size,size)))
canvas.itemconfig(tag, image=globals()[tag])
def img_creator(file):
globals()[file] = ImageTk.PhotoImage(Image.open(file))
canvas.create_image(0, 0, image=globals()[file], anchor="nw",tag=globals()[file])
for seq in ["<Button-1>"]:
canvas.tag_bind(
tagOrId=globals()[file],
sequence=seq,
func= lambda event: image_change(tag=globals()[file],size=30,file=file))
root = tk.Tk()
root.geometry("400x400")
canvas = tk.Canvas(master=root,width=500,height=500,bg="green")
canvas.pack()
img_creator(file="resimler\\arkaplan.png")
img_creator(file="resimler\\kapat.png")
root.mainloop()