2016-11-03 103 views
0

我想將圖像加載到python中的畫布上。但是我得到的錯誤:TclError:在圖像文件「C:\ testimage \ spongesea.jpg」無法識別的數據無法在python中加載圖像

import Tkinter 
from Tkinter import * 
import time 
import inspect 
import os 
from PIL import Image, ImageTk 

class game_one: 

    def __init__(self): 

     global root 
     global canvas_one 
     root = Tk() 
     root.title(" Thanks Josh Dark 
     canvas_one = Tkinter.Canvas(root, bg="BLACK") 
     canvas_one.pack(expand= YES, fill= BOTH) 
     canvas_one.focus_set() #allows keyboard events 
     p = PhotoImage(file="C:\testimage\spongesea.jpg") 
     canvas_one.create_image(0, 0, image = p, anchor=NW) 
     root.grab_set()#I forget what this does. Don't change it. 
     root.lift()#This makes root appear in front of the other applications 

ObjectExample = game_one()# starts the animation 

我可以從文件中手動打開圖像,所以它沒有被破壞,它正在呼喚正確的地方。有任何想法嗎?謝謝

+0

在許多語言中\具有特殊含義的字符串 - 即。 '\ t'表示'tab' - 你在路徑中有'\ t'。因此,使用\\('「C:\\ ... \\ ...」)或'/'(C:/ .../...「)或前綴爲」r「的原始字符串 - 'r「C:\ ... \」' – furas

回答

1

PhotoImage只適用於GIFPGM/PPM

你必須使用ImageImageTk其它格式

from PIL import Image, ImageTk 

image = Image.open("lenna.jpg") 
photo = ImageTk.PhotoImage(image) 

BTW工作:閱讀PhotoImage並查看筆記 「垃圾收集問題」。

+0

謝謝。它正在工作 –