前提・実現したいこと
tkinter上に読み込んだ画像を反転して表示しようとしてます
発生している問題
画像の反転後、tkinterで表示するためにBGR→RGB→PILフォーマット→ImageTkフォーマットへ変換した後、透明だった部分が透明じゃなくなっています
該当のソースコード
python
1import tkinter 2import cv2 3from PIL import Image, ImageTk 4 5root = tkinter.Tk() 6 7image_bgr = cv2.imread('Image.png', cv2.IMREAD_UNCHANGED) 8yAxis = cv2.flip(image_bgr , 1)#ここでOpenCVで画像反転 9cv2.imwrite('yAxis-reflect.png', yAxis)#確認用に画像を出力-この時点ではまだ透明な部分は透明 10 11image_rgb = cv2.cvtColor(yAxis, cv2.COLOR_BGR2RGB) # imreadはBGRなのでRGBに変換 12image_pil = Image.fromarray(image_rgb) # RGBからPILフォーマットへ変換 13image_tk = ImageTk.PhotoImage(image_pil) # ImageTkフォーマットへ変換 14 15canvas = tkinter.Canvas(root,bg="white", width=400, height=350) # Canvas作成 16canvas.pack() 17canvas.create_image(0, 0, image=image_tk, anchor='nw') # ImageTk 画像配置 18 19root.mainloop()
試したこと
画像反転の後に透過部分が透過じゃなくなったので
PILで画像を透過するImage.putalpha()を色んなとこに挟んでみましたが、PILに関しても詳しくなくって、ダメでした
補足情報
画像を反転する方法・OpenCVで編集した画像をtkinterで表示する方法はこちらのページを参照にしました
OpenCVで画像を反転する方法
http://peaceandhilightandpython.hatenablog.com/entry/2016/01/08/000857
OpenCVの画像をtkinter上に表示する方法
https://qiita.com/mizoe@github/items/bc56441e80b3ccd5b2a4
回答1件
あなたの回答
tips
プレビュー