aboutsummaryrefslogtreecommitdiff
path: root/test/resizable-image.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/resizable-image.py')
-rw-r--r--test/resizable-image.py84
1 files changed, 84 insertions, 0 deletions
diff --git a/test/resizable-image.py b/test/resizable-image.py
new file mode 100644
index 0000000..f298d3a
--- /dev/null
+++ b/test/resizable-image.py
@@ -0,0 +1,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()
+
+