import tkinter as tk
import os
import sys
from PIL import Image, ImageTk
if len(sys.argv) != 2:
exit(f"Usage: {sys.argv[0]} PATH_TO_IMAGE")
file_path = sys.argv[1]
app = tk.Tk()
app.title('Show image')
#img = tk.PhotoImage(file=file_path) # only seems to handle png and gif
# Tried with png, jpg, gif
img = ImageTk.PhotoImage(Image.open(file_path))
img_width = img.width()
img_height = img.height()
canvas = tk.Canvas(app, width = img_width, height = img_height)
canvas.pack()
img_on_canvas = canvas.create_image(img_width/2, img_height/2, image=img)
app.mainloop()
import tkinter as tk
from tkinter import filedialog
import os
from PIL import Image, ImageTk
file_path = None
app = tk.Tk()
app.title('Show image')
def run_open():
global file_path
file_path = filedialog.askopenfilename(filetypes=(("Image", "*.png *.jpg *.jpeg *.gif"), ("PNG", "*.png"), ("JPG", "*.jpg"), ("Any file", "*"),))
if file_path and os.path.isfile(file_path):
global img
img = ImageTk.PhotoImage(Image.open(file_path))
width = img.width()
height = img.height()
#print(width)
#print(height)
canvas.config(width=width, height=height)
canvas.create_image(width/2, height/2, image=img)
def run_exit():
print("exit")
app.destroy()
menubar = tk.Menu(app)
menu1 = tk.Menu(menubar, tearoff=0)
menu1.add_command(label="Open", underline=0, command=run_open)
menu1.add_separator()
menu1.add_command(label="Exit", underline=1, command=run_exit)
menubar.add_cascade(label="File", underline=0, menu=menu1)
app.config(menu=menubar)
canvas = tk.Canvas(app, width = 600, height = 600)
canvas.pack()
app.mainloop()