デバイス依存ビットマップ(DDB)・・ディスプレイのカラー情報に依存するビットマップ
昔のディスプレイは発色が16色しかなかったためである。
デバイス独立ビットマップ(DIB)・・カラー情報を自前で持っているビットマップ。
通常「ビットマップ」というとDIBを指す。
デバイス独立はディスプレイが変わっても影響しないの意味。
カラーテーブル ・・・・・・・・・パレットのこと。
ピクセルデータ ・・・・・・・・・パレットを持つビットマップの場合
パレットのインデックスの配列
フルカラービットマップの場合、カラー値そのものの配列
「ビットマップデータ」とか「ビットデータ」ともいう。
互換性 ・・・・・・・・・・・・・CreateCompatibleBitmap()関数は
「デバイスコンテキストと互換性の
あるビットマップを作成する」となっている。
ここでの互換性とは「同じ属性を持つ」という意味である。
簡単に言えば、同じカラー情報を持つということである。
ボトムアップ・・・・・・・・・・ビットマップファイルのピクセルデータの
配列の基本的な並び方。
トップダウンのビットマップもあるらしいが、私は知らない。
Windows3.0以前はトップダウン型だった(らしい..。当然DDB)
その頃のIBMのOS/2はボトムアップ型だった(DIBだったらしい)
そこでWindowsがDIBに移行するときにOS/2に合わせたそうだ。
もともとWindowsはIBMと共同で開発していた。
ビットマップの圧縮・・・・・・・ビットマップファイルには圧縮する仕組みが用意されている。
しかしあまり利用されていない。
RLE(Run Length Encode)という圧縮形式である。
興味がある人はインタネットで調べてほしい。
| 関数名 | 機能 | Sample |
| ビットマップ | ||
| CopyImage | イメージを拡大・縮小してコピーする | なし |
| CreateBitmap | モノクロDDBを作成する | なし |
| CreateBitmapIndirect | モノクロDDBをBITMAP構造体に基づいて作成する | なし |
| CreateCompatibleBitmap | デバイスコンテキストと互換性のあるビットマップを作成する | なし |
| CreateDIBitmap | DIBからDDBを作成する | なし |
| CreateDIBSection | アプリケーションから直接書き込むことのできるDIBを作成する | なし |
| GetBitmapDimensionEx | ビットマップのサイズを取得する | なし |
| GetDIBColorTable | DIBビットマップのカラーテーブルからRGB値を取得する | なし |
| GetDIBits | DIBのピクセルデータを取得する | なし |
| SetBitmapBits | ビットマップのデータを指定の値で設定する | なし |
| SetBitmapDimensionEx | ビットマップのサイズを0.1mm単位で設定する | なし |
| SetDIBColorTable | DIBのカラーテーブル内のエントリにRGB値を設定する | なし |
| SetDIBits | 指定のDIBのカラーデータに基づいてビットマップのピクセルを設定する | なし |
| SetDIBitsToDevice | DIBをデバイスコンテキスト上の矩形領域に描画する | あり |