JpegAnalyzer操作説明 メーカーノートINIファイル書式 |
Exifのメーカーノートはメーカ独自フォーマットでデータを記録していますが、ほとんどの場合TIFF IFD形式で記録されており、例外はありますが共通な処理でデータを読み出すことは可能です。
ただ、メーカそれぞれタグ番号やタグ値は異なり、それらをINIファイルで定義出来るようにしました。
項目名や値をINIファイルで定義することで、プログラムを書き換えずにタグ項目やタグ値の追加、書き換えに対応出来ます。
JpegAnalyzerの利用者、カメラの所有者がINIファイルを書き換えることでデータの確認、フィードバックがしやすくなり、新しい項目が発見出来たり、間違った部分を訂正できたりすることを期待しています。
対応メーカーノート
JpegAnalyzer Plus V1.42では以下のメーカーノートが対応しています。
INIファイル名 対象メーカーノート Fujifilm.ini 富士フイルム向け Kddi.ini au携帯電話向け Mamiya.ini マミヤ向け Mitsubishi.ini 三菱電機製ドコモ携帯向け Panasonic.ini パナソニック/ライカ向け Pentax2.ini ペンタックス向けタイプ2
上記以外のINIファイルは限定項目のみINIデータにしているため、当書式で定義出来ません。
また、INIファイルの無いメーカーノートはプログラム内部定義からINI定義に移行後切り替えないといけません。
よって、INIファイルを作っても動作しません。
JpegAnalyzer Plusのタグ値出力仕様
番号 データ型 データ長 表示内容 出力例 1 符号無しByte型 1〜4 16進2桁、スペース区切りで表示 00 01 02 03 5〜 領域表示 00020000-00020010 16 bytes 2 ASCII型 1〜 タグデータ長または
ヌル文字(#0)が有る直前まで
テキスト表示ABC 3 符号無しShort型 1〜6 10進、スペース区切りで表示 0 1 2 3 7〜 領域表示 00020000-0002000F 8 entries 4 符号無しLong型 1〜6 10進、スペース区切りで表示 0 1 2 3 7〜 領域表示 00020000-0002001F 8 entries 5 符号無しRational型 1〜6 10進、スペース区切りで表示 0/0 1.1 2.2 3.3 7〜 領域表示 00020000-0002003F 8 entries 6 符号付きByte型 1〜4 16進2桁、スペース区切りで表示 00 01 02 03 5〜 領域表示 00020000-00020010 16 bytes 7 Undefined型 1〜4 16進2桁、スペース区切りで表示 00 01 02 03 5〜 領域表示 00020000-00020010 16 bytes 8 符号付きShort型 1〜6 10進、スペース区切りで表示 0 1 -2 -3 7〜 領域表示 00020000-0002000F 8 entries 9 符号付きLong 1〜6 10進、スペース区切りで表示 0 1 -2 -3 7〜 領域表示 00020000-0002001F 8 entries 10 符号付きRational型 1〜6 10進、スペース区切りで表示 0/0 1.1 -2.2 -3.3 7〜 領域表示 00020000-0002003F 8 entries 11 Float型 1〜2 10進、スペース区切りで表示 1.1 -2.2 3〜 領域表示 00020000-0002000F 4 entries 12 倍精度Float型 1〜 件数のみ表示 unknown 8 entries ? その他
セクション書式
セクションはINIファイルの章に該当するもので、当INIファイルでは1セクションに1つのタグの処理方法を記述します。
記述方法はセクション名を[括弧]で囲んで次の行にキー項目を順に記述します。
通常セクション
####:タグ番号(16進4桁) type : 指定データ型(10進) count : 指定データ数(10進)
セクション名 データ型指定 データ数指定 備考 Tag#### なし なし タグ指定のみ、データ型、数は不問 Tag#### . type あり なし タグ番号、データ型指定、データ数は不問 Tag#### . type . count あり あり タグ、データ型、数とも指定
データ型、データ数指定セクションと未指定セクションを同時に記述しない事
データ型、データ数が固定されたタグはデータ異常時の予期しないトラブルを避けるためデータ型、データ数を指定することを推奨
データ型、データ数が何通りか存在する場合、データ型、データ数を指定したセクションを複数用意する
ピリオドで区切る事、カンマなどで区切られると処理しない。
機種指定セクション
model : 機種名
セクション名 データ型指定 データ数指定 備考 Tag#### [ .type [ .count ] ] . model 併設セクションに依存 機種名より前が同じ記述の通常セクジョンの後に記述する
固有のモデルに対して処理を分けることが可能
機種名より前の部分が同じセクションが記述されていること
記述例 [Tag0001.3.1]
《指定外機種の処理》
[Tag0001.3.1.DSC-001]
《指定機種"DSC-001"の処理》
配列指定セクション
seq : 配列番号 0から始まり、10進で表記
セクション名 データ型指定 データ数指定 備考 Tag#### [ .type [ .count ] ] - seq 併設セクションに依存 機種名より前が同じ記述の通常セクジョンの後に記述する
配列データのタグを定義するセクションには配下に"Array"キーを置く
個々の配列番号定義には以下の配列番号を加えたセクションを用意する
記述例 [Tag0001.3]
Name=...
Array=1
[Tag0001.3-0]
Name=...
《タグ0001、配列番号0の処理》
Sub IFD指定セクション
未実装
その他
PIM用Tag0E00は個別に特殊処理するため記述しない
キー書式
上記セクションの次の行から次のセクションまで、 キー = 値 という形式で記述する。
JpegAnalyzerのタグ値欄に表示される数値をそのままキーとし、"="の後に変換する文字列を記述する。
記述例 [Tag0001.3]
Name=○○モード
0=オート
1=マニュアル
特殊キー 書式 説明 Name=《タグ名》 タグ名指定 WhiteBalance=《値》[,《値》…] 要約表示のホワイトバランス欄に表示させたいタグ値をカンマで区切り列挙する
範囲指定は出来ないSummary=《値》[,《値》…] 要約表示で表示させたいタグ値をカンマで区切り列挙する
範囲指定は出来ないDataType=《データ型番》 Undefined型データを文字列型として読みたいなど、型を変更して読む場合に指定する
データ長が一致しない型には変換出来ないSuppress=《データ数》 データ数を指定値まで制限する DataList=《データ一覧セクション名》 同じ数値テーブルが重複する場合、別セクションにデータ一覧を用意し、間接的に参照しテーブルを共用する Head=《先頭固定文字列》 F値の"F"など先頭に付ける単位文字列を指定する Tail=《末尾固定文字列》 "mm"など末尾に付ける単位文字列を指定する Hex=《16進文字数》 整数データ型、データ数1つに限り指定文字数の16進コードに変換する Dec=《》 バイト型、符号付バイト型を10進コードに変換する Calc=A,B,C,D データ数1つに限りデータの加減乗除を行う
式=((データ+A)XB+C)XD
計算しない数値は省略可、減数はマイナス、除数は少数を使用する
例)1/100にする場合、Calc=,0.01Function=《個別処理コマンド》 データ間をまたがる処理や特殊なビット操作など、汎用記述で対応出来ないものは、作者側で"個別処理コマンド"を用意し対応する
随時追加、変更されるので、コマンドの処理内容などは記載しない