GoogleAppEngineでも使えるようにとExifを読み書きしたりいじれるPythonモジュールを書いた。
http://elicon.blog57.fc2.com/blog-entry-399.html
モジュールの関数”load”と”dump”に関して共通
・0th IFD、Exif IFD、GPS IFDの三つに対応
”load”
リトルエンディアン、ビッグエンディアン両方への対応
”dump”
ビッグエンディアン書き込みのみ
JPEG自体がビッグエンディアンなので、最初はビッグエンディアンでExifを読めるように作った。そのあとでデジカメを出している有名メーカーのサイトへ行って、デジカメの撮影サンプルを取ってきてチェックしてみたら意外にもExifだけリトルエンディアンで書かれているメーカーの多いこと。モジュールをリトルエンディアンのExifでも読めるように書き換えた。
参考までに主なデジカメメーカーをExifのエンディアンタイプで分ける。実機を持たずに公式サイトから適当に拾ってきたサンプル一枚で判断した。中のExif書き込みをするソフト部分はメーカー内で使いまわされてるだろうしモデルごとにサンプルを取ってくる必要はないだろう。だけど修正など加わっていて、実機とは違うエンディアンタイプになっているかもしれない。
ビッグエンディアン: Casio, Ricoh
リトルエンディアン:Sony, Canon, Olympus, Panasonic, Sigma

リトルエンディアンのほうが断然多い・・・・・・。JPEG本体はビッグエンディアンなのにExifだけリトルエンディアンにしたのはどういう経緯なんだろう。ちなみに、
・Windows7でファイルプロパティからExifをいじってもエンディアンタイプの変更はなし
・同じくWindows7でExifのないファイルにファイルプロパティから新しく情報を付加するとビッグエンディアンで付加
・AdobeのPhotoshopでちょっとだけ画像をいじって上書きしてもエンディアンタイプの変更はなし
・同じくPhotoshopからJPEGを新しく作るとビッグエンディアンでExifが付加
という結果も。もう対応したからいいんだけどどうせならどっちかに統合されて欲しいのに、有力なソフトメーカーと有力なデジカメメーカーで逆を向いているような状況か。
http://elicon.blog57.fc2.com/blog-entry-399.html
モジュールの関数”load”と”dump”に関して共通
・0th IFD、Exif IFD、GPS IFDの三つに対応
”load”
リトルエンディアン、ビッグエンディアン両方への対応
”dump”
ビッグエンディアン書き込みのみ
JPEG自体がビッグエンディアンなので、最初はビッグエンディアンでExifを読めるように作った。そのあとでデジカメを出している有名メーカーのサイトへ行って、デジカメの撮影サンプルを取ってきてチェックしてみたら意外にもExifだけリトルエンディアンで書かれているメーカーの多いこと。モジュールをリトルエンディアンのExifでも読めるように書き換えた。
参考までに主なデジカメメーカーをExifのエンディアンタイプで分ける。実機を持たずに公式サイトから適当に拾ってきたサンプル一枚で判断した。中のExif書き込みをするソフト部分はメーカー内で使いまわされてるだろうしモデルごとにサンプルを取ってくる必要はないだろう。だけど修正など加わっていて、実機とは違うエンディアンタイプになっているかもしれない。
ビッグエンディアン: Casio, Ricoh
リトルエンディアン:Sony, Canon, Olympus, Panasonic, Sigma

リトルエンディアンのほうが断然多い・・・・・・。JPEG本体はビッグエンディアンなのにExifだけリトルエンディアンにしたのはどういう経緯なんだろう。ちなみに、
・Windows7でファイルプロパティからExifをいじってもエンディアンタイプの変更はなし
・同じくWindows7でExifのないファイルにファイルプロパティから新しく情報を付加するとビッグエンディアンで付加
・AdobeのPhotoshopでちょっとだけ画像をいじって上書きしてもエンディアンタイプの変更はなし
・同じくPhotoshopからJPEGを新しく作るとビッグエンディアンでExifが付加
という結果も。もう対応したからいいんだけどどうせならどっちかに統合されて欲しいのに、有力なソフトメーカーと有力なデジカメメーカーで逆を向いているような状況か。
スポンサーサイト