EXIFタグの投稿

2008-06-03
雨

PHP で EXIF 読み書きする phpExifRW

ゆりこ による 02:39:02 の投稿
カテゴリー: ソフトウェア
タグ: ,

ここんところ、MacBook にトラブル発生していたため、プラグイン開発が滞ってしまいました。なんとか環境を復活させまして、そろそろ再開することにします。今までは Mac OS X 10.4 “Tiger” で粘っていましたが、心機一転して Leopard にしました。

で、Ktai Entry には、投稿日時指定機能を付ける予定ですが、添付画像の撮影日時を投稿日時とする機能は、画像回転機能と相性が悪いことが分かっています。画像回転すると EXIF 情報が落ちてしまうため、撮影日時が読めなくなり、投稿日時が設定できなくなるのです。

これの解決には、回転した画像に EXIF を記録してやるのがてっとり早いです。以前、PHP Exif Library の利用を検討しましたが、新メンテナー募集中ということと、ライブラリーの規模が大きいため、採用しないことにしました。

今回目をつけたのが、phpExifRW というライブラリーです。こちらはもっと古くて 2005年5月30日が最終バージョンです (3年前!)。単に古いのか、枯れてしまっているのかは分かりませんが、コンパクトにまとまっているので、ソースコードを精査して、使えるかどうか検討したいと思います。

ただ、これを使うとしても、回転前の画像を一度ファイルに落とす必要はありそうです。あまり一時ファイルは作りたくないのですが、やむを得ないでしょうか。

2008-05-25
雨のちくもり

写真撮影日時を投稿日時にしてみる

ゆりこ による 20:36:10 の投稿
カテゴリー: WordPressハック
タグ: ,

きょうリリースした Ktai Entry 0.8.3 ですが、実は Mail_mimeDecode.php の内部関数 (コメントで @access private と書いてある関数) を外から使うという凶悪な実装になっています。あまり行儀のよいスタイルとは言えないので、早めに修正したいところです。

で、それだけ修正しても仕方ないので、投稿日時の指定機能を付けることにしました。DATE: 2008-05-25 19:39 などと書けば、その日時になるという仕組みで、実装はとても簡単です。未来の日付にすると、WordPress コアの機能で自動的に予約投稿にもなります。

ただ、それだけ実装してもまるで芸がないので、「写真を添付したときは、写真の撮影日時を投稿日時とする」オプションを盛り込む予定です (「DATE: 1」と書いたら1枚目の写真の日付とする etc)。これは、旅のリアルタイムレポートでは絶大な効果がありまして、「写真を撮って文章を書いているうちに圏外になってしまった」とき、事後送信しても撮影した時刻が投稿日時となるため、記録という意味では正確なウェブログになります。この手法は、いずみちゃんの「Feel Fine!」で実践でされているものです (P BLOG + オリジナルの投稿スクリプトという構成)。

Ktai Entry の処理では、まずマルチパートを解析し (画像はまだオンメモリー)、次に本文だけ投稿処理をして、それから写真を保存して公開します。exif_read_data() は画像がファイルじゃないと使えないので、EXIF の日時は本文投稿時点では読めません。日時は後で読む必要があって、ちょっとややこしい処理になりそうです。

なんとか実装してみて、CVS に放り込んであります。テスト完了したら 0.8.4 としてリリースですね。