次の方法で共有


ビットマップについて

ビットマップは、 デバイス コンテキスト (DC) に選択できる GDI オブジェクトの 1 つです。 デバイス コンテキスト は、一連のグラフィック オブジェクトとその関連する属性、および出力に影響を与えるグラフィック モードを定義する構造体です。 次の表では、デバイス コンテキストに選択できる GDI オブジェクトについて説明します。

グラフィック オブジェクト 説明
ビットマップ イメージを作成、操作 (スケーリング、スクロール、回転、ペイント) し、イメージをディスク上のファイルとして格納します。
ブラシ ポリゴン、楕円、パスの内部を塗りつぶします。
フォント ビデオディスプレイやその他の出力デバイスにテキストを描画します。
論理パレット アプリケーションによって作成され、特定のデバイス コンテキストに関連付けられたカラー パレット。
パス 塗りつぶしや輪郭を描く 1 つ以上の図形 (または図形)。
ペン アプリケーションが線と曲線を描画するために使用するグラフィックス ツール。
リージョン 四角形、多角形、または楕円 (またはこれらの 2 つ以上の図形の組み合わせ) を塗りつぶし、塗りつぶし、反転させ、フレーム化し、ヒット テスト (カーソル位置のテスト) を実行するために使用できます。

 

開発者の観点から見ると、ビットマップは、次の要素を指定または含む構造体のコレクションで構成されます。

  • ピクセルの四角形が作成されたデバイスの解像度、四角形の寸法、ビット配列のサイズなどを記述するヘッダー。
  • 論理パレット。
  • ビットマップイメージ内のピクセルと論理パレット内のエントリの関係を定義するビットの配列。

ビットマップ サイズは、ビットマップに含まれるイメージの種類に関連します。 ビットマップ イメージには、モノクロまたはカラーを使用できます。 画像では、各ピクセルはビットマップ内の 1 つ以上のビットに対応します。 モノクロ画像の比率は、ピクセルあたり 1 ビット (bpp) です。 カラーイメージングはより複雑です。 ビットマップで表示できる色の数は、1 ピクセルあたりのビット数に 2 つ引き上げられます。 したがって、256 色のビットマップには 8 bpp (2^8 = 256) が必要です。

コントロール パネル アプリケーションは、ビットマップを使用するアプリケーションの例です。 デスクトップの背景 (または壁紙) を選択すると、実際にはビットマップを選択します。ビットマップは、システムがデスクトップの背景を描画するために使用します。 デスクトップ上に 32 x 32 ピクセルのパターンを繰り返し描画することで、選択した背景パターンが作成されます。

次の図は、ファイル Redbrick.bmpで見つかったビットマップの開発者の視点を示しています。 パレット配列、32 x 32 ピクセルの四角形、およびパレットの色を四角形のピクセルにマップするインデックス配列が表示されます。

のピクセル四角形、パレット配列、インデックス配列の図redbrick.bmp

前の例では、ピクセルの四角形は、16 色のパレットを使用して VGA ディスプレイ デバイスに作成されました。 16 色パレットには 4 ビットインデックスが必要です。したがって、パレットの色をピクセル色にマップする配列は、4 ビット インデックスでも構成されます。 (論理カラー パレットの詳細については、「 」を参照してください)。

Note

上のビットマップでは、システムはインデックスをピクセルにマップし、四角形領域の下のスキャン行で始まり、先頭のスキャン行で終わる。 スキャンラインは、ビデオディスプレイ上の隣接するピクセルの単一行です。 たとえば、配列の最初の行 (行 0) は、ピクセルの一番下の行 (スキャン行 31) に対応します。 これは、上記のビットマップは、一般的なビットマップの種類であるボトムアップ デバイスに依存しないビットマップ (DIB) であるためです。 トップダウン DIB とデバイス依存ビットマップ (DDB) では、システムはインデックスを最上位スキャンラインから始まるピクセルにマップします。

 

次のトピックでは、ビットマップのさまざまな領域について説明します。