2017-11-17 13 views
2

jpgイメージをtkinterキャンバスに配置しようとしています。 Tkinterのは私に、このエラーを与える:Tkinterエラー:イメージファイルのデータを認識できませんでした。

canv = Canvas(root, width=80, height=80, bg='white') 
canv.grid(row=2, column=3) 

img = PhotoImage(file="bll.jpg") 
canv.create_image(20,20, anchor=NW, image=img) 

同じことPNG画像付き:

couldn't recognize data in image file

私は、ドキュメントからのコードを使用します。画像をラベルウィジェットに入れようとしても、同じエラーが発生しました。どうしましたか?

私はMacでPython 3を使用しています。 Pythonのファイルと画像は同じフォルダにあります。

+1

ほとんどのバージョンはJPGまたはPNGをサポートしていません。 –

答えて

1

あなたのコードが正しいようだ、これは、Windows 7(のPython 3.6)上で私のために実行されている:

このTkinterのGUIで結果
from tkinter import * 
root = Tk() 

canv = Canvas(root, width=80, height=80, bg='white') 
canv.grid(row=2, column=3) 

img = PhotoImage(file="bll.jpg") 
canv.create_image(20,20, anchor=NW, image=img) 

mainloop() 

image

bll.jpgとしてこのイメージを持つ

GUI

(imgurをbll.pngに変換しましたが、これも私にとっては効果的です)


その他のオプション:

  • This answerはTkinterのが唯一のgif画像と協力して、言及しています。 .gifイメージを使用してみてください。
  • これが機能しない場合は、に記載されているようにPILを使用してください。

アップデート:PILソリューション:Tkinterのの

from tkinter import * 
from PIL import ImageTk, Image 
root = Tk() 

canv = Canvas(root, width=80, height=80, bg='white') 
canv.grid(row=2, column=3) 

img = ImageTk.PhotoImage(Image.open("bll.jpg")) # PIL solution 
canv.create_image(20, 20, anchor=NW, image=img) 

mainloop() 
関連する問題