1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
from tkinter import *
from PIL import ImageTk, Image
# class Content(Frame):
# def __init__(self, master, *pargs):
# Frame.__init__(self, master, *pargs)
#
# def set(self, image_file):
# self.image = Image.open(image_file)
# self.img_copy= self.image.copy()
# self.background_image = ImageTk.PhotoImage(self.image)
#
# self.background = Label(self, image=self.background_image)
# self.background.pack(fill=BOTH, expand=YES)
# self.background.bind('<Configure>', self._resize_image)
# self.background.bind('<Button-1>', self.destruct)
#
# def destruct(self, *pargs):
# self.destroy()
#
# def _resize_image(self, event):
# self.image = self.img_copy.resize((event.width, event.height))
# self.background_image = ImageTk.PhotoImage(self.image)
# self.background.configure(image=self.background_image)
class Content(Canvas):
def __init__(self, master, *pargs):
Canvas.__init__(self, master, *pargs)
def set(self, image_file):
self.image = Image.open(image_file)
self.img_copy= self.image.copy()
self.background_image = ImageTk.PhotoImage(self.image)
self.image = self.create_image(0, 0, self.background_image)
self.image.bind('<Configure>', self._resize_image)
self.image.bind('<Button-1>', self.destruct)
def destruct(self, *pargs):
self.destroy()
def _resize_image(self, event):
self.image = self.img_copy.resize((event.width, event.height))
self.background_image = ImageTk.PhotoImage(self.image)
self.background.itemconfigure(self.image, image=self.background_image)
root = Tk()
root.geometry('800x450')
file = "assets/most-accurate-test.png"
image = ImageTk.PhotoImage(Image.open(file))
canvas = Canvas(root)
canvas.pack(fill='both', expand=TRUE)
image_id = canvas.create_image(0, 0, image=image, anchor='nw')
def resizer(e):
global image1, resized_image, new_image
image1 = Image.open(file)
resized_image = image1.resize((e.width, e.height), Image.Resampling.LANCZOS)
new_image = ImageTk.PhotoImage(resized_image)
canvas.itemconfigure(image_id, image=new_image)
def change(e):
global image1, resized_image, new_image, canvas, image, file
file = "assets/types.png"
image = ImageTk.PhotoImage(Image.open(file))
print(canvas.winfo_width(), canvas.winfo_height())
image1 = Image.open(file)
resized_image = image1.resize((canvas.winfo_width(), canvas.winfo_height()), Image.Resampling.LANCZOS)
new_image = ImageTk.PhotoImage(resized_image)
canvas.itemconfigure(image_id, image=new_image)
canvas.bind('<Configure>', resizer)
canvas.bind('<Button-1>', change)
# content = Content(root)
# content.set(file)
# content.pack()
# exit()
root.mainloop()
|