« カブト幼虫2019 | トップページ | ナナフシの幼生 »

2019年10月12日 (土)

tiffのヘッダ

画像を変換して、RGB/8bitで並ぶ画像データをtiffで保存しようとしてます。
固定の最低限のtiffヘッダを作って、RGB画像の先頭に入れてやろうというわけ。

先頭の8byteは簡単だ。
4D4D 002A 00000008   ←  Big-Endianで0x00000008からtiffのtagが入ってる、の意。
画像データの最後にtagをつける場合は、00000008 ではなくなるわけね。

次にtagが続く。

000A   ← 10個のtagが続くよ
00FE 0004 00000001 00000000   ← FileType(標準)
0100 0003 00000001 ****0000   ← 画像の横幅
0101 0003 00000001 ****0000   ← 画像の縦幅(高さ)
0102 0003 00000003 ********   ← 色の深度(RGB:3つ分)
0103 0003 00000001 ****0000   ← 画像の深度(ここでは1)
0106 0003 00000001 ****0000   ← 圧縮(1:非圧縮)
0111 0004 00000001 ********   ← 画像データの先頭ポインタ
0115 0003 00000001 ****0000   ← コンポーネント数(RGB:3)
0117 0004 00000001 ********   ← 画像データ総数
011C 0003 00000001 ****0000   ← 画像の並び順(RGB:1)

0000 0000   ← tagの終了
0008   ← 色の深度(R)    ここを0102のポインタで指す
0008   ← 色の深度(G)
0008   ← 色の深度(B)

こんな感じです。DataTypeが3の場合はuint16なので後半4byteは使われない。
逆に色深度のように8byteを超えるdataを示す場合はポインタで場所を指す。
ふむ、非圧縮のストリップ(分割)なしならそんなに難しくはないですね。
 

|

« カブト幼虫2019 | トップページ | ナナフシの幼生 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« カブト幼虫2019 | トップページ | ナナフシの幼生 »