2017-11-29 6 views
0

画像を表示するアプリケーションを作成しようとしていますが、画像は1000 * 1000ですが、大きすぎます。サイズを変更する方法が必要です画像。私はPILとImageTKを使用してみましたが、それはうまくいきませんでした、ここに私のコードは、これまでのところです:私は画像のサイズを変更し、tkinterを使って画像を表示します

from tkinter import * 

app = Tk() 
app.title('embeded image') 

fname = Canvas(bg = 'black', height=100, width=100) 
fname.pack(side=TOP) 

image = PhotoImage('Sun.png') 
image = image.resize((25, 25), Image.ANTIALIAS) 

icon = fname.create_image(image=image) 

fname.pack() 
app.mainloop() 

私はこれが動作しない理由はさっぱりだが、それは明らかだ場合はとても残念Tkinterのは比較的新しいイム。

+0

は、コンソールで実行中でしたしているresizePIL.Imageは、エラーメッセージが表示する必要はありませんtkinterで2つのdifferntクラスPhotoImageをミックス? 'image'は' resize() 'メソッドを持たないことを示しています。 'tkinter'はイメージを表示する' PhotoImage'を持ち、 'resize()'を持たず、 'PIL'は' resize() 'を持つ' Image'を持っています。 – furas

答えて

0

あなたはresize

import tkinter as tk 
from PIL import Image, ImageTk 

app = tk.Tk() 

fname = tk.Canvas(height=200, width=200) 
fname.pack() 

pil_image = Image.open('Sun.png') 
pil_image = pil_image.resize((25, 25), Image.ANTIALIAS) 

image = ImageTk.PhotoImage(pil_image) 
icon = fname.create_image((0,0), image=image, anchor='nw') 

app.mainloop() 
+0

もし私がこれを返そうとしたら、ImageTkという名前のモジュールは、上記のように私はImageTkを試しましたが、それはうまくいきませんでした。インターネット上で見ると、これに関する情報はほとんどありません。 – invisabuble

+0

あなたはそれがうまくいかない理由は言わなかった - だからあなたはそれを持っていると思ったが、それを使う必要はない。 'ピペットピロー'を使って 'ピロー'をインストールする – furas