どんなアプリ(のつもり)だったか
WiFiSD カード上にインストールするWeb アプリケーションです。
(※Windows Store Appでは無いです)
一般に、WiFiSD カード上の写真をブラウズする際、Exif情報を取得するには一度画像をホスト(PC・スマートフォン等)に転送する必要があります。1枚のサイズが数MB~数十MBになる最近のカメラではそれなりに時間が掛かります。
そこで、WiFiSD カード上でLua スクリプトによりExif 情報を抽出し、ファイルとして保存しておけば便利だろうと考えました。
画像1枚あたりのExif情報はせいぜい1KB程度ですから、カード内の画像全ての情報を取得し、Exif 情報…露出補正のEV値、シャッタースピード、焦点距離、使ったレンズ等でカテゴリ分け・並べ替えも現実的な話になります。
実際、自分が外でカメラ+WiFiSD カード+スマートフォン・タブレット で使う場合、「あの時EV すこし弄って撮ったあの写真を原寸で確認したい!」と思っても、それを「探す」には結局何枚も時間をかけて転送するか、又はカメラの小さい液晶で探すかしなければならず…これはあるべき姿では無いだろうという問題意識がありました。
なお、WiFiSD カード上にインストールし、基本インターネットには接続していないという形式上、所謂ストアのような支払や、広告表示等による収益化は困難です。
このため、このアプリについては…DLページにPaypalのリンクでも貼り、便利に感じてくれたら少し払ってください、くらいが現実的な所かな…程度に考えていました。
開発計画
開発に当たっては、大ざっぱに3段階で進めようかなという計画でした(このあたりMSCC の効果が見られる)。
- Phase 0 Jpeg 画像からExif 情報を抽出しJsonファイルで書きだすLua スクリプトの製作(PC上のLua 環境で)
- Phase 1 WiFiSD カード実機での動作確認、摺合せ
- Phase 2 WinJS を使ったWebインターフェースの作成
0・1については合わせて2週ほど、2は各OS上のWebブラウザ動作確認が手間なので1か月程度、全体では2か月くらいで出来るかなという目算でした。なので、もし継続していれば3、4か月は掛かったかもしれません。
Phase 0
少しググったところ、「Luaだけ」で書かれたExif 抽出コードはどうも存在しないようなので自前で書くことにしました。Lua スクリプトを触るのは初めてで、そもそもバイナリファイル読めるの?というレベルでした。が、Lua はシンプル故理解しやすく、Exif の仕様書を横に見ながら進める事でIFD0、Exif・GPS・Interoperability IFD をデコードしてファイルに落とすコードが出来ました。
なお、JPEG・Exif構造の理解にはこちらのページが大変、大変参考になりました。
JpegAnalyzer Plus オンラインヘルプ
http://hp.vector.co.jp/authors/VA032610/contents.htm
Phase 1
WiFiSD カード上のLua 実行環境でのExif 情報抽出自体は成功しました。が、
原因は判りませんが、WiFiSD カード上でスクリプトを動かすとWiFiSD カードがPC・カメラからアクセス出来なくなる、という現象が頻発しました。最初はファイル書き込みアクセスが宜しくないのかな?と、ファイルサイズを減らす・頻度を減らす等試していたのですが、一度試行する毎にアクセス不可→カード再フォーマットという状況に陥っていました。
最後はファイルの読み込み・Exif デコードのみを行い書き出しはしない、というスクリプトを試しましたが、それでも状況は変わりませんでした。十数回のトライ&エラーの後、遂に再フォーマットすら出来なくなってしまいました。
後で気づいたのですが、
Segmentation Fault 氏が遭遇した現象に近いものであったようです。
出たばかりという事もあり、なかなか気難しいカードでした。
新たにWiFiSD カードを買ってくる、という手もあるにはありますが…
- 4000円の追加出費は痛い
- 同じFirmware なら新しいカードで試しても結局同じでは?
という事もあり、ここで諦める事にしました。
無念。