16bitのTIFFをJavaのDataInputStreamで読み込もうとすると、
なんかおかしなことになる。
調べてみると、TIFFはヘッダに何バイトか情報が入っているらしい。
しかし、何故か簡単に調べられなかったので,計算することに。
tifファイルのサイズは、1024*1024の画像で 2,097,350 バイト。
すなわち、2,097,350 * 8 = 16,778,800 ビット。
1pixelあたり16bitなので、pixelに使われてない容量は、
16,778,800 - (1024 * 1024 * 16) = 1584 bit = 198 bite
198バイトというよくわからないデータが余っていました。
ということで、TIFFのヘッダは198バイトということと予想。
198バイト分はじめに読み捨てたらうまくいきました。
(リトルエンディアンとビッグエンディアンを入れ替える必要もありました。)
ヘッダにどんな情報が入っているかは触れないことにします。
なんかおかしなことになる。
調べてみると、TIFFはヘッダに何バイトか情報が入っているらしい。
しかし、何故か簡単に調べられなかったので,計算することに。
tifファイルのサイズは、1024*1024の画像で 2,097,350 バイト。
すなわち、2,097,350 * 8 = 16,778,800 ビット。
1pixelあたり16bitなので、pixelに使われてない容量は、
16,778,800 - (1024 * 1024 * 16) = 1584 bit = 198 bite
198バイトというよくわからないデータが余っていました。
ということで、TIFFのヘッダは198バイトということと予想。
198バイト分はじめに読み捨てたらうまくいきました。
(リトルエンディアンとビッグエンディアンを入れ替える必要もありました。)
ヘッダにどんな情報が入っているかは触れないことにします。
今Javaでやろうとしている画像処理ですが、Cに大きく心が揺れました。