2016-09-12 23 views
0

私は学校のプロジェクトのためのゲームに取り組んでおり、その一部として、スプラッシュスクリーンを読み込んでゲームの「読み込み」をシミュレートします。私はコードを持っていてイメージを表示しますが、私がそれをしたいのは定義された.gifファイルをスクリーンに表示することです。ここでは、コードは次のようになります。Tkinterを使ってスプラッシュスクリーンイメージのサイズを変更するには?

import tkinter as tk 
root = tk.Tk() 
root.overrideredirect(True) 
width = root.winfo_screenwidth() 
height = root.winfo_screenheight() 
root.geometry('%dx%d+%d+%d' % (width*1, height*1, width*0, height*0)) 
image_file = "example.gif" 
image = tk.PhotoImage(file=image_file) 
canvas = tk.Canvas(root, height=height*1, width=width*1, bg="darkgrey") 
canvas.create_image(width*1/2, height*1/2, image=image) 
canvas.pack() 
root.after(5000, root.destroy) 
root.mainloop() 

私の唯一の問題は、画像が画面よりも大きくなっているので、それが画像全体として適合しないということです。どのようにして.gifイメージが画面に収まるようにこのコードを使用してイメージのサイズを変更できますか?

P.S.これが私の望む通りにコードを実際に劇的に変更しないでください。値の変更は問題ありません。

+0

問題は解決しましたか?はいの場合は、私の答えを受け入れてください:) –

答えて

1

PILをお勧めします。ここ
はコードです:

from PIL import Image, ImageTk 
import Tkinter as tk 

root = tk.Tk() 
root.overrideredirect(True) 
width = root.winfo_screenwidth() 
height = root.winfo_screenheight() 
root.geometry('%dx%d+%d+%d' % (width*1, height*1, width*0, height*0)) 
image = Image.open(image_path) 
image = image.resize((width, height), Image.ANTIALIAS) 
image = ImageTk.PhotoImage(image) 
canvas = tk.Canvas(root, height=height*1, width=width*1, bg="darkgrey") 
canvas.create_image(width*1/2, height*1/2, image=image) 
canvas.pack() 
root.after(5000, root.destroy) 
root.mainloop() 

あなたがから幅と高さを取得:

width = root.winfo_screenwidth() 
height = root.winfo_screenheight() 

、あなたはまだ光画像を使用したい場合は、することができますリサイズ()

を呼び出しますzoom(x、y)およびサブサンプル(x、y)を試してください。ここにはdocがあります。ところで、それは私のコンピュータでは機能しません...(python2.7 + win7)

関連する問題