I have recently made a code to try and be an photo's app, however the image isn't being shown properly. I have an image that I am using for reference, and I am trying to make it show the whole thing on the canvas, however I get the following:
Code:
def open_image():
global selected_image
global img
try:
selected_image = askopenfile(title="Open Image", filetypes=filetypes).name
root.title(selected_image + " - Photos")
img_temp = Image.open(selected_image).resize((960, 540), Image.ANTIALIAS)
img = ImageTk.PhotoImage(img_temp)
image_area.create_image(1, 1, anchor="n", image=img)
except Exception as e:
print(e)
Image for testing: The original image
The result of the code and the image: The result
If anyone can help then I would be grateful!
- James
(People asking for whole code so here it is )
import tkinter
from tkinter.filedialog import *
from PIL import Image, ImageTk
img_exten = r"*.png *.bmp *jpeg *.bmp *.ico *.gif *.jpg"
filetypes = (
("Image Files", img_exten),
("All Files", "*.*")
)
selected_image = ""
img = ""
root = tkinter.Tk()
root.title("Photos")
def do_nothing():
print(0)
def open_image():
global selected_image
global img
try:
selected_image = askopenfile(title="Open Image", filetypes=filetypes).name
root.title(selected_image + " - Photos")
img_temp = Image.open(selected_image).resize((960, 540), Image.ANTIALIAS)
size = 960, 540
img_temp.thumbnail(size, Image.ANTIALIAS)
img = ImageTk.PhotoImage(img_temp)
image_area.create_image(1, 1, image=img)
except Exception as e:
print(e)
def close_image():
global selected_image
selected_image = ""
root.title("Photos")
image_area = tkinter.Canvas(root, width=960, height=540)
image_area.grid(column=1, row=1)
# Running the window
tkinter.mainloop()