全3192文字
PR

プログラミング言語「Python」は広く使われるようになり、高い人気を誇る。この特集では、Pythonで自動化アプリを自作できるようになるための最低限の知識を紹介する。

 2つ目のアプリは、題して「画像リサイズアプリ」です。

 デジカメやスマホで撮影した写真のファイルは、そのままではサイズが大きく、ほかの人と共有する際に不便です。そこで、画像を小さくリサイズするプログラムをPythonで作ります。

 具体的な仕様は以下とします。1つの画像をリサイズするだけの、極めてシンプルな仕様です。

■画像ファイル名
myphoto.jpg

■画像ファイルの格納先
ホームディレクトリ

■リサイズ方法(図6

  • 縦長の画像なら、高さ200ピクセルに縮小。幅は縦横比を保ったまま縮小
  • 横長の画像なら、幅200ピクセルに縮小。高さは縦横比を保ったまま縮小
  • リサイズ後はそのまま上書き保存

図6 ●本アプリのリサイズ方法
図6 ●本アプリのリサイズ方法
[画像のクリックで拡大表示]

 このような画像処理には、Pythonの画像処理ライブラリを使うとよいです。画像処理ライブラリは複数ありますが、ここでは定番の画像処理ライブラリである「Pillow」(ピロー)を使うとします。外部ライブラリですが、Anacondaには含まれているので、インポートすればすぐに使えます。

 さて、この「画像リサイズアプリ」のコードはたった4行しかありません。先に完成形をお見せします(リスト5)。

リスト5 ●「画像リサイズアプリ」のコード
リスト5 ●「画像リサイズアプリ」のコード
[画像のクリックで拡大表示]

 たったこれだけのコードでリサイズのプログラムが書けてしまうのは、便利なライブラリがそろっているPythonの魅力の1つでしょう。

 リスト5の実行結果が、図7です。myphoto.jpgは幅1108×高さ1477ピクセルの縦長画像です。前述の仕様のリサイズ方法よって、高さは200ピクセルになり、幅は元画像の縦横比を保ったまま縮小されます。画像ファイルにマウスポインターを重ねると、ツールチップに「大きさ」として幅×高さが表示され、意図通りリサイズできたことがわかります

図7 ●リスト5の実行後、myphoto.jpgがリサイズされたことが、ツールチップで確認できる
図7 ●リスト5の実行後、myphoto.jpgがリサイズされたことが、ツールチップで確認できる
[画像のクリックで拡大表示]
* 本プログラムでは、画像撮影時の条件や機材などの影響で、画像の縦長/横長を逆に認識してリサイズし、かつ、90度回転させる場合があります。ご了承ください。