2012-04-26 7 views
3

私は簡単な画像エディタを書いています。 PPMファイルを使用します。私が知ることから、私のコードはうまくいくはずです。これはPPMファイルのデータを認識できません

def Display(image, array, width, height, win): 

for i in range(width): 
    for j in range(0, height, 3): 
     colors = color_rgb(array[i][j], array[i][j+1], array[i][j+2]) 
     image.setPixel(i, j, colors) 
     image.draw(win) 

return 

これは私が

を使用していたPPMファイルであるようにしかし、私はこのエラー私のコードは、この

def main(): 
print("Image Editor") 
print() 
filename = input("name of image file: ") 
print() 

with open(filename) as f: 
    formatind = f.readline() 
    width, height = [int(x) for x in f.readline().split()] 
    colordepth = f.readline() 
    array = [] 
    for line in f: 
     array.append([int(x) for x in line.split()]) 

win = GraphWin("Image Editor!", width, height) 

image = Image(Point(100,100), filename) 

Display(image, array, width, height, win) 

inf.close() 
win.getMouse() 
win.close() 

main() 

のように見えます

Traceback (most recent call last): 
    File "/home/zach/Downloads/piceditor (1).py", line 84, in <module> 
    main() 
    File "/home/zach/Downloads/piceditor (1).py", line 69, in main 
    image = Image(Point(100,100), filename) 
    File "/home/zach/Downloads/graphics.py", line 770, in __init__ 
    self.img = tk.PhotoImage(file=pixmap[0], master=_root) 
    File "/usr/lib/python3.1/tkinter/__init__.py", line 3272, in __init__ 
    Image.__init__(self, 'photo', name, cnf, master, **kw) 
    File "/usr/lib/python3.1/tkinter/__init__.py", line 3228, in __init__ 
    self.tk.call(('image', 'create', imgtype, name,) + options) 
_tkinter.TclError: couldn't recognize data in image file "pig.ppm" 

を取得し、私の表示機能に見えます

P3 
6 8 
255 
249 249 249 255 255 255 250 250 250 255 255 255 250 250 250 250 250 250 254 255 255 251 255 255 
249 251 255 253 249 255 255 248 255 255 234 255 255 242 255 255 245 253 255 246 243 255 253 241 
255 255 237 255 255 237 252 255 241 249 255 246 249 255 253 254 255 255 255 252 255 255 248 241 
255 251 239 254 247 241 252 254 253 252 255 255 251 255 255 242 242 242 255 255 255 241 241 241 
0 0 0 0 0 0 4 4 4 20 20 20 236 236 236 252 252 252 254 255 253 248 255 250 
0 0 0 0 0 0 4 4 4 20 20 20 236 236 236 252 252 252 254 255 253 248 255 250 

私はできません私の人生は、ファイル内のデータを認識できない理由を理解しています。

助けがあれば助かります。ありがとう

+0

実際に.ppmファイルが実際に.ppmファイルであることは間違いありませんか?あなたはデータを投稿できますか? –

+0

私は使用しているファイルがあります – zburns12

+0

あなたのファイルは6x8だと言っていますが、それは8x6にレイアウトされています。 –

答えて

0

なぜライブラリPILを使用していませんか?ドキュメントでは、PPMファイルで動作すると主張しています。しかし、私はPILでPPMファイルを扱うことに慣れていません。

Example:PPMファイルを開いてファイルからオブジェクトを作成し、ファイルを編集することができます。

関連する問題