diff options
Diffstat (limited to 'test/resizable-image.py')
-rw-r--r-- | test/resizable-image.py | 84 |
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() + + |