はじめに
tkinterにてPillowを使用してText領域にJPEG画像をアップロードする方法を紹介します。
Canvas領域に画像をアップロードする記事は既に投稿されていましたが、Text領域に画像をアップロードする記事は見つからなかったので、Text領域に画像をアップロードする際の参考になれば幸いです。
開発環境
・WSL2/Ubuntu環境
・Python: 3.10.12
Pillowを使用しText領域にJPEG画像をアップロードする方法
Sample_Uploadimagefortext.py
import tkinter as tk
from tkinter import Text, filedialog
from PIL import Image, ImageTk # type: ignore
# upload image for text area
def Sample_Upload_Imagefile():
filepath = filedialog.askopenfilename(filetypes=[("Image files", ".jpg")])
if filepath:
image_jpeg = Image.open(filepath)
image_jpeg.thumbnail((400, 400))
image_for_tkinter = ImageTk.PhotoImage(image_jpeg)
area_text.image_create(tk.END, image=image_for_tkinter)
area_text.image = image_for_tkinter
# configure root
root = tk.Tk()
root.title("ColorText")
root.geometry("800x600")
# configure menu
bar_menu = tk.Menu(root)
list_upload = tk.Menu(bar_menu, tearoff=0)
bar_menu.add_cascade(label="Upload", menu=list_upload)
list_upload.add_command(label="Image", command=Sample_Upload_Imagefile)
root.config(menu=bar_menu)
# make text
area_text = Text(root, wrap="word", undo=True)
area_text.pack(fill="both", expand=True)
# display window
root.mainloop()
JPEG画像をText領域にアップロードする流れ
①UploadタブのImageをクリック
②fileを選択するdialogが表示されるので、何らかのJPEGファイル(拡張子が.jpg)を選択
③Text領域に選択したJPEGファイルが出力
参考文献
本記事は以下情報を参考にして執筆しました。