2017-10-24 54 views
0

画像をtkウィンドウ内に表示する必要がありますが、これらの機能は使用することができません。Python - URLからTkinter内の画像を開く - PILを使用しない

from urllib.request import urlopen 
from re import findall, MULTILINE, DOTALL 
from webbrowser import open as webopen 
from os import getcwd 
from os.path import normpath 
from tkinter import * 
from sqlite3 import * 
from datetime import datetime 

私はただのTkinterの標準機能を介してこれを行うことができますいくつかの方法があるかもしれないと考えますが、すべての可能な方法を見つけるためにまだ持っていました。

これまた私は、画像をGIFに変換する方法を見つけることができます。システムにイメージを保存することはできません。

私が表示する必要がある画像は、thisなどのJPGまたはPNGです。

何か助けていただければ幸いです。 hereを記載されているとおり

答えて

1

光画像クラスはファイルからGIFおよびPGM/PPM画像を読み取ることができます。

photo = PhotoImage(file="image.gif") 

photo = PhotoImage(file="lenna.pgm") 

光画像には、文字列からBase64でエンコードされたGIFファイルを読み込むことができます。あなたはこのPythonのソースコード内の画像を埋め込むには(base64でモジュールで使用する機能は、base64でエンコードされた文字列にバイナリデータを変換するために)使用することができます。

そして、以下のコメントで指摘したようにをしてhereあなたも使用することができますPhotoImageのPNG画像。

tkinterの画像はPhotoImageオブジェクトとして渡されなければならず、PhotoImageオブジェクトを取得するためには、画像は上記のフォーマットの1つでなければなりません。

したがって、使用可能なモジュールを使用して、これらのフォーマットのいずれかでイメージを取得する方法を見つける必要があります。

+0

をやっTkの8.6がhttpsを参照してください(PNG画像をネイティブでサポートしています// tcl.tk/software/tcltk/8.6.html)、PILなしでPhotoImageでそれらを読むことができます。 –

+1

を含むように更新されました –

0

Tcl/TkモジュールImgは、PhotoImageでJPEGやPNG(他の形式も可)を読み込むことができます。このモジュールはTcl/Tkのいくつかのパッケージ配布物に含まれています。したがって、使用しているコンピュータにそれがインストールされているかどうかをチェックする価値があります。そうするために、とそれをロードしよう:

widget.tk.eval('package require Img')

widgetは、任意のTkinterのウィジェットすることができます。

あなたはそれとオープンJPEG画像を使用することができますので、それはバージョン番号を返した場合、それがインストールされ、ロードされているだけで

PhotoImage(file='/my/image.jpg')

関連する問題