前提・実現したいこと
beautifulsoupで習得した画像urlをディレクトリに保存せずtkinterで表示したい
よろしくお願いします。
参考
ディレクトリ保存しない表示のやり方
tkinterでjpg表示
発生している問題・エラーメッセージ
AttributeError: 'bytes' object has no attribute 'thumbnail'
import tkinter as tk from PIL import Image, ImageTk import urllib.request as req import io ''' web上にある画像を保存します ''' url = "http://imgcc.naver.jp/kaze/mission/USER/20180519/35/3012705/157/500x718xedab7ba7e203cd7576d12004.jpg" img_read = urllib.request.urlopen(url).read() #画像データGET img_bin = io.BytesIO(img_read) #メモリに保持してディレクトリ偽装みたいなことする pil_img = Image.open(img_bin) #PILで読み込む img = io.BytesIO() #空のインスタンスを作る pil_img.save(img,"JPEG") #空のインスタンスに保存する diet_img = img.getvalue() #バイナリデータを取得する(open().read()状態) ''' tkinterのメイン ''' root = tk.Tk() root.geometry('800x560') root.title('IMG') canvas = tk.Canvas( root, # 親要素をメインウィンドウに設定 width=500, # 幅を設定 height=500 # 高さを設定 #relief=tk.RIDGE # 枠線を表示 # 枠線の幅を設定 ) canvas.place(x=0, y=0) # メインウィンドウ上に配置 #PILでjpgを使用 img1 = diet_img img1.thumbnail((500, 500), Image.ANTIALIAS) img1 = ImageTk.PhotoImage(img1) # 表示するイメージを用意 canvas.create_image( # キャンバス上にイメージを配置 0, # x座標 0, # y座標 image=img1, # 配置するイメージオブジェクトを指定 tag="illust", # タグで引数を追加する。 anchor=tk.NW # 配置の起点となる位置を左上隅に指定 ) root.mainloop()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。