tkinterで以下のコードを使ったのですが、canvas内に画像が表示されません。
self.canvasのコードに何か間違いがあると思うのですが、どこが間違ってるかご教授いただけないでしょうか?
python
1import tkinter as tk 2import glob 3from PIL import Image, ImageTk, ImageOps, ImageDraw 4import shutil 5import os 6 7SIZE=600 8cnt = 1 9 10class Application(tk.Frame): 11 def __init__(self, master = None): 12 super().__init__(master) 13 14 self.master.geometry('840x840') 15 self.master.title("image select") 16 17 self.pngs = 'images/dog2.png' 18 img1 = Image.open(self.pngs) 19 img1 = img1.resize((SIZE, SIZE)) 20 gazou = ImageTk.PhotoImage(img1) 21 22 self.canvas = tk.Canvas(self.master, width=SIZE,height=SIZE,bg="black") 23 self.canvas.create_image(0, 0, image=gazou, anchor=tk.NW) 24 self.canvas.pack() 25 26 self.master.bind("<ButtonPress-1>",self.Push) 27 self.master.bind("<ButtonRelease-1>",self.Release) 28 self.master.bind("<Button1-Motion>",self.Motion) 29 30 def Push(self, event): 31 global x_start,y_start 32 x_start = event.x 33 y_start = event.y 34 self.canvas.create_rectangle(x_start,y_start,x_start+1,y_start+1,outline="red",tag="rect") 35 36 #コールバック関数:タッチパッドから指を離したとき 37 def Release(self, event): 38 global x_end,y_end,cnt 39 x_end = event.x 40 y_end = event.y 41 self.canvas.create_rectangle(x_start,y_start,x_end,y_end,outline="red") 42 img = Image.open(self.pngs) 43 img = img.resize((SIZE, SIZE)) 44 img.crop((x_start,y_start,x_end,y_end)).save(f"ocr_images/{cnt}.png") 45 cnt = cnt + 1 46 47 #コールバック関数:タッチパッド上で指を動かしている時 48 def Motion(self, event): 49 x_end = event.x 50 y_end = event.y 51 self.canvas.coords("rect",x_start,y_start,x_end,y_end) 52 53 54if __name__ == "__main__": 55 OCR_FOLDER='ocr_images' 56 if os.path.exists(OCR_FOLDER): 57 shutil.rmtree(OCR_FOLDER) 58 os.makedirs(OCR_FOLDER) 59 root = tk.Tk() 60 app = Application(master = root) 61 app.mainloop() 62 63 64
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。