Google AppEngine Python2.7 を使って、アップロードした画像ファイルから Exif 情報を抽出してみる。コードは https://github.com/takatama/gae-webapp2-images で公開している。
Images Python API の使用方法 – Google App Engine — Google Developers で紹介されている例は少し古かったので、webapp2を使うように変更した。
Exif を取得する部分は python – Image exif data in google app engine – Stack Overflow を参考にした。ここに書いてあるように、ローカルで AppEngine 開発用サーバを動かしたとき、取得できる Exif は限られているので注意。
anImage.rotate(0) anImage.execute_transforms(parse_source_metadata=True) exif = anImage.get_original_metadata()
Google AppEngine で EXIF 情報を抽出するには、Images Python API の get_original_metadata() を使う。そのために、execute_transforms() しておく必要があるが、image に対して何も操作せずに execute_transforms() を呼び出してもエラーになるため、rotate(0) してある。
もっと Python らしいコードが書けるようになりたいな。
開発マシンは Mac OS X 10.7。AppEngine 開発用サーバで images API を使うため、PILをインストールした。備忘録として、開発マシンの設定作業を書き留めておく。
$ sw_vers ProductName: Mac OS X ProductVersion: 10.7.4 BuildVersion: 11E53
(1) Google App Engine Python 2.7 のセットアップ
Google App Engine SDK を Downloads – Google App Engine — Google Developersからインストールする。ダウンロードした dmg をダブルクリックして解凍し、アプリケーションフォルダへ移動する。
Mac には最初から Python 2.7 がインストールされているので、すぐにコーディングを始められる。
$python --version Python 2.7.1
(2) PIL (Python Imaging Library) インストール
Google AppEngine SDK の開発用サーバを使えば、ローカルで動作確認ができる。images API をローカルの開発用サーバで動かすには、PIL をインストールする必要がある。
$sudo easy_install pip $sudo pip install pil
(3) GitHub for Mac インストール
GitHubで管理するため、Set Up Git · github:help から GitHub for Mac をインストールして使う。公開鍵、秘密鍵の設定なしで使うことができる。使い始めるまでが楽ちん。