今回は、写真から Exif 情報を取得するためのプラグイン「cordova-exif」について。
以前は JavaScript を使って取得していたのですが、色々修正することになったので併せてこちらも修正しました。
GitHub のページはこちらから。
GitHub – guilhermefarias/cordova-exif: This plugin, is the simplest way to get exif data of images at Cordova platform (Phonegap)
https://github.com/guilhermefarias/cordova-exif
実装方法ですが、まず下記のコードを実行します。
cordova plugin add https://github.com/domax/cordova-exif.git --save
なお、このプラグインを使うには cordova-plugin-camera と cordova-plugin-file が必要です。
インストールされてない場合は、自動でこれらのプラグインもインストールされます。
ただし、プラグインのバージョンによっては競合が起こる事もあり、私の環境ではカメラプラグインのバージョンが新しすぎたようでエラーになりました。
そのため、最新のカメラプラグインやファイルプラグインを既にインストール済みの場合は、問題がなければ一度削除してから cordova-exif をインストールすることをおすすめします。
インストールが完了したら、あとは下記のコードで Exif 情報を取得できます。
CordovaExif.readData(imageURI, function(exifObject) { console.log(exifObject); });
取得できるデータ一覧は上の GitHub のページに記載されているので、分からなくなった場合はご確認ください。
なお、カメラプラグインと合わせて使う場合は下記のように書きます。
function onSuccess(imageURI) { CordovaExif.readData(imageURI, function(exifObject) { console.log(exifObject); }); } function onFail(message) { alert('Failed because: ' + message); } var options = { sourceType: Camera.PictureSourceType.PHOTOLIBRARY, quality: 50, encodingType: Camera.EncodingType.JPEG, destinationType: Camera.DestinationType.FILE_URI } navigator.camera.getPicture(onSuccess, onFail, options);
なお、上記のプログラムでは、フォトアルバムから写真を選択するようにしています。
気を付けたい点としては、カメラプラグインのオプションで correctOrientation
を true に設定し、画像を正しい向きに直す処理を追加すると、取得できる Exif 情報が減りました。
私は写真から緯度経度を取得したかったので、上記の理由から correctOrientation を追加するのをやめました…。
なお、写真の向きは取得できたので、そちらで正しい向きに直す処理を追加することはできます。
以上、写真から Exif 情報を取得するためのプラグイン「cordova-exif」についてのご紹介でした。
インストール時に若干手間取りましたが、便利なプラグインですので是非ご活用ください。