Pythonを使って「画像ファイルを読み込む」アプリを作る

ここではPythonを使って「画像ファイルを読み込む」アプリの作り方について説明しています。| Here, we explain how to make an application that reads an image file using Python.

「画像ファイルを読み込む」アプリを作る



ボタンをクリックすると画像を選ぶダイアログが表示されて・・・



画像をクリックすると読み込まれる。


では、早速作ってみよう! でもその前に・・・

ライブラリのインストール

ファイルダイアログは標準ライブラリの「tkinter.filedialog」モジュールを使えば表示することができる。しかし、画像データを扱う機能は、標準ライブラリにはないので外部ライブラリを利用する必要があります。

外部ライブラリには「pillow」という画像を扱えるライブラリがあるので、これを利用します。

外部ライブラリのインストールには、コマンドプロンプトを開いて、「pip」というコマンドを実行して行います。(macOSでは、ターミナルを開いてpip3というコマンドを実行します)

➀コマンドプロンプトを起動させます。


>の後にpip install pillowと入力します。

インストールが完了しました。


さあ、これで画像を扱えるようになったので、進めていきます。

下記のように入力してみましょう。


うわ!って長くてやる気なくす、、、ってなりますよね。

分割して簡単な解説をしていきますね。

モジュールのインポート import tkinter as tk
import tkinter.filedialog as fd   
import PIL.Image 
import PIL.ImageTk    
     

ここでのアプリは、ウインドウを表示する[tkinter],ファイルダイアログを使うための[tkinter.filedialog],画像を扱う[PIL.Image],画像をtkinterで作った画面上に表示させるための[PIL.ImageTk]の4つのモジュールを使って作ります。


画像を表示する関数 def dispPhoto(path):        
     newImage = PIL.Image.open(path).resize((300,300))
     imageData = PIL.ImageTk.PhotoImage(newImage) 
     imageLabel.configure(image = imageData)
     imageLabel.image = imageData          

画像を表示する関数です。まず、PIL.Imageのopenを使って画像ファイルを開き300ピクセルx300ピクセルにリサイズする。次はその画像を PIL.ImageTkのPhotoImageを使って画面上に表示させる。そしてconfigureにて「ラベルに表示できるデータ」に変換する。そしてラベルに表示させる。


ファイルを開く関数 def openFile():
     fpath = fd.askopenfilename()  
     if fpath:
         dispPhoto(fpath)      

fd.askopenfilename()はファイルダイアログを出す関数になります。その次のif fpathにてファイル名が入っていたら、その画像を開くdispPhoto(path)を実行する。しかしなかったら何もしない。


画面を作る部分 root = tk.Tk()
root.geometry(“400×350”)

btn = tk.Button(text=”OPEN FILE”, command = openFile)  
imageLabel = tk.Label()        
btn.pack()           
imageLabel.pack()    
tk.mainloop()                      

最初の2行で画面を作り、ボタンがクリックされたらファイルダイアログを開く関数を実行します。imageLabelで画面表示用のラベルを作り、ボタン、ラベルを配置して、mianloopで作ったウインドウを表示してます。


*尚、ここではバージョン「Python 3.6.1」を使用しています。

この本から引用、参考に学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが2,000円程ならコスパよく、買っておいてよかったと満足してます。


わからないことはプロフェッショナルから学ぶのが一番

キャリアアップに必要なスキルを取得しよう。

オンラインで受講ができるスクールですので、全国どこからでも。

就職・転職支援

ITエンジニア向けIT求人・転職サイト