BMP(ビーエムピー、Microsoft Windows Bitmap Image)またはDIB(ディーアイビー、Device Independent Bitmap、デバイス独立ビットマップ)は、マイクロソフトとIBMがWindowsとOS/2にわかれる前のOSを共同で開発していた頃に作られた画像ファイル形式。圧縮の方法についても定義されているが、Windowsが標準では無圧縮のファイルを生成するため、他のアプリケーションにおいても無指定時は、圧縮はされていない場合が多い。ファイル形式の細部の変更が何度か行われており、その結果としてWindowsとOS/2で多少ファイル形式が異なることがある。機械独立のファイル形式として設計されたため、実際に存在する画像表示装置や、印刷装置が、画像を上方から処理するものがほぼ全てであるにもかかわらず、幾何学的なX軸、Y軸方向に座標を指定する形式となっている。その結果、画像を下から上に向かって記録している (Bottom up) のが特徴であるが、後に高さに負の値を指定することでその他大多数の画像ファイル形式と同じように画像を上から下へ向かって記録する (Top down) こともできるようになった。しかし互換性の面からProgramming Windowsではトップダウン形式のビットマップの作成を推奨していない。なお、ビットマップという呼称は画像データの表現方式のひとつであり、本項で述べている"マイクロソフト独自のファイル形式"を必ずしも指すわけではない。ビットマップファイルは、以下のブロックに分かれている。14byteからなる、ビットマップファイルのファイルヘッダである。参考URLhttp://msdn.microsoft.com/en-us/library/dd183374(VS.85).aspxOS/2 2.xで使用されたファイルヘッダ。BITMAPFILEHEADERを拡張したものだがサイズは同じ。このブロックは、アプリケーションが画像を描画するための画像の詳細な情報が書かれており、14バイト目から始まる。 40 - Windows V3OS/2のビットマップで使われる情報ヘッダで、12バイトある。参考URLhttp://msdn.microsoft.com/en-us/library/dd183372(VS.85).aspxhttp://www.programmers@heaven.com/mb/graphics/148346/152845/re-planes/?S=B20000(スパムフィルターに引っかかるためアドレスに@を入れています。@を除くこと)Windowsのビットマップで使われる情報ヘッダで、40バイトある。多くのビットマップがこの形式で保存されている。参考URLhttp://msdn.microsoft.com/en-us/library/dd183376(VS.85).aspxOS/2 V2以降対応した情報ヘッダである。サイズは可変であり、最大64byte。Windows 95、Windows NT 4.0から対応した新しい情報ヘッダ。参考URLhttp://msdn.microsoft.com/en-us/library/dd183380(VS.85).aspxWindows 98、Windows 2000から対応した新しい情報ヘッダ。参考URLhttp://msdn.microsoft.com/en-us/library/dd183381(VS.85).aspx※1 数字と定義されている圧縮形式の関係は以下の通りこのブロックは、情報ヘッダがINFOヘッダかつビットフィールド形式が使用されている場合のみ存在する。
V4、V5ヘッダの場合は、ヘッダ内に値が格納されているためこのブロックは存在しない。カラーマスクは赤成分、緑成分、青成分の順で書かれており、それぞれ4byte、合計12byteである。
α成分のカラーマスクは存在せず、必要な場合は算出しなければならない。1ピクセルあたりのビット数とカラーマスクの組み合わせが以下である場合は、圧縮形式を非圧縮に設定し、カラーマスクを省略してもよい。このブロックは、画像内で使用される色を定義している。上述の通り、ビットマップ画像はピクセルごとに保存されている。各ピクセルは、1バイト以上を使用して値を保持している。したがって、各値と実際の色の関係を、アプリケーションに教えることがカラーパレットの目的である。典型的なビットマップファイルはRGBカラーモデルを使用している。このモデルにおいて、色は赤 (R)、緑 (G)、青 (B) のそれぞれの強さ (0-255) で表される。1色3バイトで表記する形式1色4バイトで表記する形式、OS/2ビットマップにおけるRGB2もこちらに相当する。このブロックは、イメージを各ピクセルごとに記述する。ピクセルは通常、左下から右下へ、これを下から上に向かって保存する。各ピクセルは1バイト以上で記述されている。直接RGBデータが置かれる場合のデータ順は、上項カラーパレットに準ずる。水平方向のバイト数が4の倍数ではないときは、Null (0x00) で埋めて4の倍数にする。プログラムでBMP画像を平易に扱うためのライブラリも数多く存在している。サードパーティ製のライブラリに関しての各詳細は、外部リンクの項に記載している。
出典:wikipedia
LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。