ビットマップファイルの仕様書

[戻る]
シャノン 2004/10/18(月) 07:29:10
bmp ファイルの仕様書って、どこかにないものでしょうか?
マイナーな情報を探しているのですが…
自分なりにいろいろ調べていますが、公式な仕様書などご存知でしたら、どうか教えて
いただけませんでしょうか。
よろしくお願いします。

以下の情報の出所、確実なソース等を探しております。

●探している情報1
Windows 1.x / 2.x のフォーマット

現在広く使われている BITMAPINFOHEADER を、仮にビットマップヘッダ ver.3 とし、
その後継である BITMAPV4HEADER を ver.4、BITMAPV5HEADER を ver.5 とすると、
これはそのヘッダが採用された Windows のメジャーバージョンと一致します。
すると、Windows 1.x と 2.x のヘッダもあるはずなのですが…

http://netghost.narod.ru/gff/graphics/summary/micbmp.htm
このページによると、2.x のヘッダは BITMAPCOREHEADER であるらしいです。
1.0 のヘッダの情報も載っています。

●探している情報2
OS/2 ビットマップファイルの情報

さっきのページのリンクの先
http://netghost.narod.ru/gff/graphics/summary/os2bmp.htm

あるいはこのへん
http://www.edm2.com/0107/os2bmp.html

に載っていますが…

●探している情報3
OS/2 ビットマップの圧縮形式

OS/2 ビットマップでは、Windows にはない独自の圧縮法として、Huffman-1D 圧縮、
RLE-24 圧縮が可能なようです。

http://www.pmview.com/
このソフトで、それら圧縮形式のファイルを作れるみたいです。

●探している情報4
JPEG / PNG 形式のビットマップ

BITMAPINFOHEADER 以降のビットマップでは、圧縮形式として JPEG、PNG を使うことが
できますが、ヘッダの後にどのようなバイナリをくっつければいいのかわかりません。

http://hp.vector.co.jp/authors/VA033743/index.html
こちらで公開されている「Swell」などは、JPEG / PNG 形式のビットマップを作れます
が、作者さんも「正しいのか自信がない」とコメントされています。

●探している情報5
CMYK ビットマップ

RGB ではなく CMYK でも色を表現できるとか。
BITMAPV4 / V5HEADER の CSType メンバに LCS_DEVICE_CMYK が入るらしいですが、
この値は最新の Platform SDK でも定義されていません。
にもかかわらず、このキーワードでぐぐると、これが定義された Wingdi.h らしきもの
がヒットします。

http://www.google.co.jp/search?hl=ja&c2coff=1&q=LCS_DEVICE_CMYK

●探している情報6
ICM に関する日本語ドキュメント

BITMAPV4HEADER や BITMAPV5HEADER の末尾の方のメンバは、ICM に関連してくるものだ
と思うのですが…これに関する日本語のドキュメントはないものでしょうか?

Bosscat 2004/10/19(火) 12:25:46
仕様書じゃありませんがココなんてどうでしょう?
http://www.wotsit.org/

デバッグする際によくお世話になります。

シャノン 2004/10/19(火) 17:47:46
レスありがとほございます。

が。
そのサイトは知っていますし日頃からお世話になっています。
その他にも、上に長々と書いたところで、オフィシャルじゃない情報は手に入ります。
たぶん、プログラムを組むのに困らないくらいの情報は集められます。

ただ、それらがドコから出てきた情報なのか気になるんですよ…
ひょっとして、RFC みたいに標準化はされてなくて、誰かが勝手に決めた仕様が
デファクトスタンダードになっちゃったんだろうか、とか思ったりもしますが。

Windows での仕様に関して言えば、決めてるのは MS なんでしょうけど…
オフィシャルな仕様書、規格書ってのはどこかにないもんでしょうか。

ついでに。
●わかった情報1
OS/2 での圧縮アルゴリズムのひとつ、Huffman-1D について

FAX で使われるものと同じアルゴリズムで、規格は ITU-T 勧告 T.4 および T.6
らしいということ(オフィシャル情報ではないです)。

古いスレッドには追加発言できません。