生物屋さんのためのゼロからのプログラミング

―忘れないための覚書 (たま~に更新)―

Pythonで画像を読み込み、名前をつけて保存する。

Pythonの練習第3弾。今回はJavaでJFileChooserで画像を開き、名前を付けて画像を保存する。 - 生物屋さんのためのゼロからのプログラミングの内容に近いことのPython版。

ソースコードは下記。

import tkinter as tk
import tkinter.filedialog as tf
from PIL import Image

#画像ファイルをオープンダイアログで開く
def openImage():
    global img   #saveImage()でも使えるように、imgをグローバル変数にする

    fileType = [("png", "*.png"), ("tiff", "*.tif")] #画像の種類を選択
    iDir = "/Users/Desktop/"
    filePath = tf.askopenfilename(filetypes = fileType, initialdir = iDir)
    img = Image.open(filePath)
    img.show()  #画像の表示

#画像ファイルを保存ダイアログを使って保存する
def saveImage():
    savePath = tf.asksaveasfilename()
    img.save(savePath+".tif")

#コントローラーの作成
def run ():
    root = tk.Tk()
    root.title ("Test")
    root.geometry("100x100")
    #ボタンの設置
    openButton = tk.Button (root, width = 25, text ="Open", command = openImage)
    saveButton = tk.Button (root, width = 25, text = "Save", command = saveImage)
    openButton.pack()
    saveButton.pack()
    root.mainloop()

#プログラムの実行
if __name__ == "__main__":
    run()

前回のPythonでExcelのデータを読み込み、名前をつけて保存する。 - 生物屋さんのためのゼロからのプログラミングとやっていることは、ほとんど同じ。但し、画像を取り扱うために、

from PIL import Image

この部分で“pillow”を呼び出している。
このPILは、なぜかMac OX 10.12以降にしか対応していないので、それ以前のversionではエラーが出て使えなかった。そのため、インストールにかなりの時間が掛かったが、最新のMac OXにupdate。


Javaとの大きな違いは、tifファイルも難なく開けること。以前の記事Javaでtiff画像を開く - 生物屋さんのためのゼロからのプログラミングのように、JavaTIFFファイルを開こうとするとかなり大変だった。