前提・実現したいこと
GUI画面上で好きな画像を選択し、テキストボックスに入力した好きな文字を選択した画像に表示させたく考えています。
発生している問題・エラーメッセージ
TypeError: can only concatenate str (not "int") to str
該当のソースコード
python
1from PIL import Image, ImageDraw, ImageFont 2import tkinter as tk 3from tkinter import filedialog 4import os 5 6# --------------------------------------------------- 7"Tkinterの設定" 8# --------------------------------------------------- 9root = tk.Tk() 10root.title("入力画面") 11root.geometry("400x300") 12frame_button=tk.Frame() 13frame_button.grid(row=1,sticky="we") 14 15# --------------------------------------------------- 16"ラベル" 17# --------------------------------------------------- 18Static1 = tk.Label(text='データの名前を入力してください。') 19Static1.place(x=120, y=30) 20 21# --------------------------------------------------- 22"テキストボックス" 23# --------------------------------------------------- 24txt = tk.Entry(width=20) 25txt.place(x=90, y=70) 26 27text=txt 28draw_x = 90 29draw_y = 75 30 31def btn_click(): 32 33 type = [("all file","*")] 34 path = os.path.abspath(os.path.dirname(__file__)) 35 file_path = filedialog.askopenfilename(filetypes = type, initialdir = path) 36 image = Image.open(file_path) 37 draw = ImageDraw.Draw(image) 38 font = ImageFont.truetype("/Library/Fonts/Arial Unicode.ttf", size=50) 39 draw.text((draw_x, draw_y), text, fill=(255,0,0), font=font) 40 image.save('sample.jpeg') 41 42 43# --------------------------------------------------- 44"ボタンの作成" 45# --------------------------------------------------- 46Button=tk.Button(frame_button,text="選択",command=btn_click) 47Button.grid(row=1,column=0) 48 49 50root.mainloop()
試したこと
draw.text((draw_x, draw_y), text, fill=(255,0,0), font=font)
の「text」の部分を「"text"」などとすれば、入力することができるのですが、テキストボックスに""で囲むとテキストボックスに入力した文字が表示されません。
調べてみると、「text」の部分は文字列ではいけないようなのですが、テキストボックスに入力した文字を画像に表示させる方法はありますでしょうか?
補足情報(FW/ツールのバージョンなど)
M1mac
anacondaを使用しています。
ご教授いただけましたら幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/27 05:55