2017-10-23 8 views
1

Tkinterのボタンに画像を調整するにはどうすればよいですか?ボタンの画像を調整する

実際に私はこのている:

originalImg = Image.open(currentphotofolderPath + file) 
img = ImageTk.PhotoImage(originalImg) 
Button(photoFrame, image = img, borderwidth=0, height = 200, width = 200) 

問題の画像は200×200

でボタンに調整していない私は、PhotoImage.resize()

+0

ボタンのサイズを変更することはできません。サイズを手動で設定すると、効果的に画像の一部だけがトリミングされます。 'Image.resize'または' PhotoImage.resize'のどちらかでイメージのサイズを変更する必要があります –

+0

Ok ...イメージをサイズ変更できますが、プロパティを保持して説明してください: たとえば、イメージが300x600、それを200x200に設定したいが、100x200に設定したい。 'トレースバック(最新の呼び出しの最後):: ファイル「P:/挙-python- 問題は、私は私のイメージの大きさを知らないです... replyiため – Deakox

答えて

0

Billalによって投稿としてあなたは選択肢のカップル、ズーム機能を持っている、またはあなたがサイズ変更機能を作成します。

def Resize_Image(image, maxsize): 
    r1 = image.size[0]/maxsize[0] # width ratio 
    r2 = image.size[1]/maxsize[1] # height ratio 
    ratio = max(r1, r2) 
    newsize = (int(image.size[0]/ratio), int(image.size[1]/ratio)) 
    image = image.resize(newsize, Image.ANTIALIAS) 
    return image 

画像サイズ(PhotoImageではなく)のサイズを、できるだけ大きなサイズに変更します(あらかじめわかっていない場合)

ズームメソッドよりも少ないメモリを使用する必要があります重要な要素です)

+0

パーフェクト、まさに私が欲しかったことありがとう – Deakox

1

zoom()機能で画像のサイズを変更する必要はありません問題を解決する必要があります:

Return a new PhotoImage with the same image as this widget but zoom it with X and Y.

Button()ウィジェットをインスタンス化する前に以下のコード行を追加すると、助けになるはずです:

originalImg = Image.open(currentphotofolderPath + file) 
originalImg.zoom(200, 200) 
img = ImageTk.PhotoImage(originalImg)  
Button(photoFrame, image=img, borderwidth=0, height=200, width=200) 
+0

Thxをあなたのコードでエラーが発生しています012, originalImg.zoom(200,200) ファイル「C:\ Python27 \ lib \ site-packages \ PIL \ Image.py」(512行目)の「Photo/Sources/GUI/main.py」 __getattr__ レイズはAttributeError(名) はAttributeError:これは私の輸入である をzoom' 'PILインポートイメージ、いまからTkinterのインポート* からgeTk' – Deakox

+0

@Deakox編集をご確認ください –

関連する問題