主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

スポンサーサイト

                
tags:
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Exifのエンディアンタイプに関して - PythonでExifを読み書きするモジュールを作ったときのこと

                
tags: python
 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
1409221607465.jpg


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

hMatoba

Author:hMatoba
Github

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。