JPEGのファイル形式


[ レスポンス ] [ でんげき☆ゲーマーズ ]

投稿者 TAROT 日時 2001 年 2 月 21 日 18:21:50: [DG-000865]

回答先: JPEG画像のプロパティの解像度について・・・ 投稿者 TFF 日時 2001 年 2 月 21 日 15:42:49

> JPEGのプロパティ→ファイルの概要ということろで
> 水平方向の解像度 また 垂直方向の解像度
> という項目があると思うのですが、この数値
> を変更することはできるのでしょうか?

それができるソフトがあるかもしれませんが私は存じません。
バイナリエディタでJPEGの情報を書き換えれば可能です。
ところで、何のために解像度を変えるのですか?

きっとここまでの説明は求めてないでしょうけど、
ファイル形式は、まずファイルの開始を表すFF D8があって、
続いていろいろなセグメント情報が連続しています。
このセグメントの内、JFIF(APP0)セグメントに解像度情報があります。
これは普通FF D8にの直後にあります。

JFIF(APP0)セグメントはまずセグメントの開始を現すFF、次に
セグメントタイプを表すE0があります。
そして、2バイトでセグメントの長さが現されます。これは16以上です。
続いて"JFIF"という文字列、すなわち4A 46 49 46 00があり、
次に2バイトほどのリビジョンナンバーが続きます。1バイト目は01、2バイト目は00〜02のはずです。
次の1バイト解像度のタイプを表し、00であれば解像度情報はもってません。
01であればdots/inch、02であればdots/cmで表されています。
次の2バイトが水平解像度、その次の2バイトが垂直解像度になります。
解像度タイプが00(情報なし)であっても、この値は0(すなわち00 00)ではいけません。
このあとにそれぞれ1バイトでサムネイルの幅、高さがあり、高さ*幅*3(RGB)バイトのサムネイルビットマップがあります。

どのセグメントも、FFからはじまり、次の1バイトでセグメントタイプを表し、
次の2バイトにセグメントの長さがありますのでそれをみて次のセグメントの始まりを探せます。
ただし、セグメントタイプがDE、DF、F0、FDのどれかだと無視するので、
長さ情報は無く、直後にセグメントがきます

2バイトで値が表されている時は、普通にhigh-lowの順に並んでます。

最後に、自分の環境くらいは書きましょうね。


レスポンス:



[ レスポンス ] [ でんげき☆ゲーマーズ ]