Firefox 3.6でFile APIというファイルのバイナリデータにアクセスするAPIが搭載されました。
この様なJPEGファイルのEXIF情報を取得するデモも公開されています。
File API & Firefox 3.6
http://demos.hacks.mozilla.org/openweb/FileAPI/
自分もBMPファイルの情報を取得するサンプルを作ってみました。
Firefox 3.6でこちらを開くと試せます。
BMPファイルをドラッグするとBMPの情報とパレットを持っている場合はそのパレットの色情報をパレットを持ってないフルカラーなどの画像の場合は先頭の256ピクセル分の色を以下の様に表示します(こちらは canvas を使って描画しています)。Macユーザの方はパレット付きのBMPファイルの生成が大変(GIMPなどを使う必要が有る)ためこちらにサンプルファイルを用意しまいた。ファイル名の最後についている文字が色数です。
なおパレットを使わないフルカラーのビットマップなどの場合には画像データの先頭から256ピクセルの画像情報を表示する様にしています。
データの取得には上記で紹介した「JPEGファイルのEXIF情報を取得するデモ」で使用されている exif.js に定義されている関数を使用しました。以下の様な関数がデータの取得にとても便利です。こちらのファイルのライセンスはMPL Licenseとなっています。
関数名 | 内容 |
---|---|
getByteAt | Byte(符号無し8bit)データの取得 |
getShortAt | Signed Short(符号有りの16bit)データの取得 |
getSLongAt | Signed Long(符号有りの32bit)データの取得 |
getLongAt | Unsigned Long(32bit)データの取得 |
getStringAt | 文字列データの取得 |
関連情報
Using files from web applications - MDC
https://developer.mozilla.org/en/Using_files_from_web_applications
W3C FileAPI in Firefox 3.6 ✩ Mozilla Hacks – the Web developer blog
http://hacks.mozilla.org/2009/12/w3c-fileapi-in-firefox-3-6/
Firefox 3.6 FileAPI demo: reading EXIF data from a local JPEG file ✩ Mozilla Hacks – the Web developer blog
http://hacks.mozilla.org/2009/12/firefox-36-fileapi-demo-reading-exif-data-from-a-local-jpeg-file/