2017-03-04 18 views
0

PythonでTkinterを使ってGUIプログラミングをしています。グリッドマネージャを使ってウィジェットを作っています。私はいくつかのボタンを作成しており、その上に画像をアップロードしたいと思います。このコードを入力すると、escape sequence errorと表示されます。Tkinterを使用してPythonで画像をアップロードするにはどうすればよいですか?

PILを使用して聞いたことは良い考えではありませんか?本当?

cookImage = PhotoImage(file = "image/C:\Users\terimaa\AppData\Local\Programs\Python\Python36-32\cook.gif") 
+0

正確なエラーを表示してください。 –

答えて

0

、Windowsのファイル名は、生の文字列として入力する必要があります。

cookImage = PhotoImage(file=r"C:\Users\terimaa\AppData\Local\Programs\Python\Python36-32\cook.gif") 

これは、Pythonだけでなく、PILのすべてに適用されます。

+0

_must_はかなり強い言葉です。また、スラッシュ、またはバックスラッシュでエスケープされた後方スラッシュを使用することもできます。 –

+0

@BryanOakley十分な公正ですが、生の弦は最もクリーンな方法です。スラッシュの使用は大部分しか行われていないので、スラッシュの使用は推奨しません – Novel

0

用途:

path = r"a string with the path of the photo" 

r接頭辞に注意してください、それは生の文字列を意味します。

... 
img = ImageTk.PhotoImage(Image.open(file=path)) 
label = tk.Label(root, image = img) 
label.something() #pack/grid/place 
... 

パスが指定できます

  • 絶対相対("C:\Users\terimaa\AppData\Local\Programs\Python\Python36-32\cook.gif"

  • お持ちの場合は

0

"\cook.gif"は、Pythonのコードがどこにあるかによって異なります) image fileこれはあなたが望むもので、それを開くだけです。またはPhotoImage。 Tcl/Tk 8.6は、Windows上で3.6とするべきで、.pngファイルも読み込むことに注意してください。 Windowsでは、ファイル名に 'r'を付けるか、スラッシュ「C:/ User/...」を使用します。

実際のPILパッケージはもはや維持されておらず、2.xでのみ動作します。これは新しいユーザーが使用すべきではないものです。互換性のある後継者pillow(たとえばpython -m pip install pillowとインストールされています)は積極的に維持され、3.xで動作します。互換性はインポートステートメントにも適用されます。import PILインポートピロー。枕は画像を操作したり、多くのフォーマットをtkフォーマット(ImageTkクラス)に変換することを可能にします。

関連する問題