Tkinter: Difference between revisions

From David's Wiki
Created page with "Tkinter is a Python API for the Tk GUI. It is built into the Python standard library and is cross platform. ==Images== To display an image: <syntaxhighlight lang="python"> im..."
 
Line 19: Line 19:
photo_img = ImageTk.PhotoImage(image=image)
photo_img = ImageTk.PhotoImage(image=image)
canvas_image = canvas.create_image(0, 0, image=photo_img, anchor=tk.NW)
canvas_image = canvas.create_image(0, 0, image=photo_img, anchor=tk.NW)
window.mainloop()


# To update the image
# To update the image later on..
image_url2 = 'https://via.placeholder.com/256/FF00FF/'
image_url2 = 'https://via.placeholder.com/256/FF00FF/'
image2 = Image.open(requests.get(image_url, stream=True).raw)
image2 = Image.open(requests.get(image_url, stream=True).raw)
photo_img = ImageTk.PhotoImage(image=image2)
photo_img = ImageTk.PhotoImage(image=image2)
canvas.itemconfigure(canvas_image, image=photo_img)
canvas.itemconfigure(canvas_image, image=photo_img)
window.mainloop()
</syntaxhighlight>
</syntaxhighlight>


;Notes
;Notes
* Make sure the <code>ImageIk.PhotoImage</code> does not get garbage collected.
* Make sure the <code>ImageIk.PhotoImage</code> does not get garbage collected.

Revision as of 16:25, 1 February 2021

Tkinter is a Python API for the Tk GUI. It is built into the Python standard library and is cross platform.

Images

To display an image:

import tkinter as tk
from PIL import Image, ImageTk
import requests

image_url = 'https://via.placeholder.com/256/0000FF/'
image = Image.open(requests.get(image_url, stream=True).raw)
window = tk.Tk()
main_frame = tk.Frame(window)
main_frame.pack()
canvas = tk.Canvas(main_frame,
                   width=image.size[0],
                   height=image.size[1])
canvas.pack()
photo_img = ImageTk.PhotoImage(image=image)
canvas_image = canvas.create_image(0, 0, image=photo_img, anchor=tk.NW)
window.mainloop()

# To update the image later on..
image_url2 = 'https://via.placeholder.com/256/FF00FF/'
image2 = Image.open(requests.get(image_url, stream=True).raw)
photo_img = ImageTk.PhotoImage(image=image2)
canvas.itemconfigure(canvas_image, image=photo_img)
Notes
  • Make sure the ImageIk.PhotoImage does not get garbage collected.