Exception Diary
2009.03.14 [Sat]
_ recent_image.rb に EXIF表示機能を追加
tDiary Image Galleryのサポート・ページをアナウンスしたところ、「いっとくの戯言書庫」のいっとくさんがさっそく、ViewerモードのEXIF表示を試してくれた。ありがたいことである。
で、調子に乗って recent_image.rb を改造して、日記中に画像のEXIFデータを表示する view_exif というプラグインを追加してみた。使い方は以下のエントリを参照して頂きたい。
Image GalleryのViewerモードでのEXIF表示機能は、まだカメラのことを何も分かっていなかった頃に「とりあえずカッコよさそうだから」という理由で追加したものだ。EXIFの各パラメータの意味などまったく分からなかったため、とりあえずexifparserが吐き出すものをすべて表示する、という形になっている。知っていることは包み隠さない、実に漢(オトコ)らしい仕様であるが、カメラの知識が付いてきた今では、さすがにこれでは煩雑だと思うようになった。
このことを踏まえて、view_exifプラグインでは、簡単に使いたい方にはなるべく簡単に、凝りたい方はいろいろな表示形式を取れるように工夫してみた。Image Galleryを使っていてカメラに興味のある方はぜひ試して頂きたいと思う。
_ インストール
まだ、正式リリースはしていないため、パッチをこちらからダウンロードして、recent_image.rb に当てて下さい。Image Gallery 1.0.9a に入っている recent_image.rb にパッチを当てたものも用意しましたので、1.0.9a をお使いの方はそのままどうぞ。
・recent_image.rb view_exif 追加パッチ
・Image Gallery1.0.9a の recent_image.rb に上のパッチを当てたもの
exifparser をインストールしていない方は、こちらを参照してインストールしておいて下さい。
_ 使い方(1) -標準フォーマットで表示 -
以下のように、image.rb または image_ex.rb でアップした際の画像番号をパラメータにしてプラグインを呼び出します。一番簡単な使い方がこの方法です。
<%= view_exif 0 %>
このようにすると、その画像のEXIFデータが次の例のようなフォーマットで表示されます。
NIKON D90, 70mm, F5.3, 1/160sec., ISO200, +0.0EV (Nikon AF-S DX VR Zoom-Nikkor 18-105mm f/3.5-5.6G ED)
左から、カメラのモデル名、焦点距離、F値、露出時間(=シャッタースピード)、ISO感度、露出補正値の順になっています*1*2。
また、この日記では、スタイルシートに手を入れ、右寄せ、文字サイズ80%になるようにしています。標準フォーマット形式の場合、EXIFデータの表記部分に "exifdatastr" というclass名が付きますので、以下を参考にして、お好みに合わせ調整して下さい。
div.exifdatastr p { text-align:right; font-size:80%; }
_ 使い方(2) -EXIFタグを個々に読み出す-
以下の例のように、EXIFのタグの名前を指定することでその値を読み出すことができます。標準フォーマットよりももう少し凝った表示をしたい場合には、これらを組み合わせてお好みの表示になるようにします。
<%= view_exif 0, "DateTimeOriginal" %>
上記の例は、撮影日時を得る場合のタグ指定です。指定できるEXIFタグの名前は、お使いのカメラごとに異なる場合があります。どれが指定できるかは、Image GalleryのViewerモードでの表示を参照して下さい。Viewerモードでは、表示できるEXIFタグをすべて表示するようになっています。
EXIFタグは一つしか指定できませんが、これらを組み合わせることで、以下のような表を作ることもできます。
モデル | : NIKON D90 |
撮影日時 | : 2009:03:07 14:43:02 |
焦点距離 | : 80mm |
F値 | : F5.3 |
露出時間 | : 1/100sec. |
ISO感度 | : ISO200 |
露出補正 | : +0.0 |
この表は、以下のようなtableを日記に埋め込むことで表示しています。tDiaryスタイルだと複雑ですが、wikiスタイルで日記を書かれている方はもう少し簡単に書けるかも知れません。
<table> <tr><td>モデル</td><td>: <%=view_exif 1, "Model" %></td></tr> <tr><td>撮影日時</td><td>: <%=view_exif 1, "DateTimeOriginal" %></td></tr> <tr><td>焦点距離</td><td>: <%=view_exif 1, "FocalLength" %></td></tr> <tr><td>F値</td><td>: <%=view_exif 1, "FNumber" %></td></tr> <tr><td>露出時間</td><td>: <%=view_exif 1, "ExposureTime" %></td></tr> <tr><td>ISO感度</td><td>: ISO<%=view_exif 1, "ISOSpeedRatings" %></td></tr> <tr><td>露出補正</td><td>: <%=view_exif 1, "ExposureBiasValue" %></td></tr> </table>
2009.03.16 [Mon]
_ Image Gallery強化計画
Image GalleryのEXIFタグで画像の選択をしたいのだが…といっとくさんからリクエストがあった。これは、自分も以前からやりたいと思っていたことなので、具体的なスペックを考え始めた。
今までどうしてこの機能に手をつけなかったのかというと、まず、前も書いたけどカメラの知識がなかったため、 exifparserで得られるタグの中でどれが重要なのかを判断できなかったことが大きい。今はそれぞれの意味が大体分かるようになってきたので、まずは、(1) モデル名、(2) 焦点距離、(3)F値くらいで絞り込めればよいように思う。私は絞り優先の設定で撮ることがほとんどなのでこれでほぼ事足りる。(「これがないと困る」という要望がある方はツッコミをどうぞ。)
実は「どのレンズを使ったか」という条件にも対応したいのだが、こちらはメーカ拡張のタグに属するようで、現在のexifparserでは対応できていないので無理。exifparser自身は開発が止まってからずいぶん期間がたつ。これをきっかけに、こちらにも手を付けられれば…と考えたりもする。
_ EXIF雑感
それにしても、EXIFタグの値っていろんなパラメータが絡み合ってて直感的に分かりにくい。それがなぜかと考えるに、実は「人間の目が、あまりにもよくできているためだ」と思うようになってきた。
人間の目は暗いところでは絞り(瞳孔)を開くし、ピント合わせはレンズ(水晶体)が膨らみを変えることで屈折率を変える。あたりまえだが、こんなことを意識してやっている人はいない。ものを見ようとすると勝手にそうなるだけだ。また、見えないところは脳で補間(これはISO感度を上げる、ということか?)などということもしているようだ。
この、光を切り取るという処理を、いかに人間の目のように効果的に出来るようにするかという工夫の積み重ねが、カメラの発展の歴史にはたっぷり詰まっている。この歴史の中で、以前は自動でなしえなかった部分を基準化するため、ある意味「仕方なく」いろいろなパラメータの数値に置き換えられているという訳だ。例えば、絞りならF値、ピント合わせなら焦点距離、といった具合だ。
要するに何が言いたいかというと、EXIFタグ=カメラの撮影のパラメータの意味が直感的に分かりにくいのは、人間の目が無意識にやっている、できることを「仕方なく」数字に置き換えているためなのだろうと思う。EXIFタグの各値の意味を理解する、ということは、例えば「50mmのレンズでこのF値とこのシャッタースピード、このISO感度で撮ると、どういう写真になるのか」というイメージを頭の中に基準として作り上げ、各タグを変化させるとどう写真が変化するのかを知る、ということを意味する。これは本当にたくさんの写真を撮って、体で覚えるしかない。このことが、最近ようやく理解できてきた。
最近のカメラは、フルオートでほぼ何も考えなくても自動で、目に見えるように写してくれる。だが、写真の表現を変えたい場合には、これらのEXIFタグの値の理解が必須だ。本当にカメラを楽しむためには、まだまだ精進せねばと思う。
さらに妄想を進めると、仮に人間の目の出来がもう少し悪くて、瞳孔の開け閉めを随意筋でやらなければいけなかったとする。こういう世界だと、私たちは「そうそう、この光のときは、カメラの絞りを、この目のくらいにして」と自分の目を指差して教える、といったことをしていたかも知れない。これなら、カメラのEXIFタグの値は、もっと直感的に分かるものになっていたのだろうと思ったりする。ここはぜひ、ドラえもんの「もしもボックス」で試したいところである。
NIKON D90, 50mm, F3.2, 1/1600sec., ISO200, +0.0EV (Nikon AF Nikkor 50mm f/1.8D)
_ いっとく [この度は機能強化ありがとうございます。 “ありがたい”なんてとんでもない、それはこちらの台詞です。ありがとうござい..]
_ n-kashi [いえいえ、さっそくの確認ありがとうございます。wikiスタイルだとやっぱりtableが簡単に書けていいですね。 リク..]