ビットマップの種類

ビットマップは、四角形に並んだピクセルの各ピクセルの色を指定するビットの配列です。 個々のピクセルで使用されるビット数によって、そのピクセルに割り当てることができる色の数が決まります。 たとえば、各ピクセルが 4 ビットに相当する場合、任意のピクセルに 16 色 (2^4 = 16) のうちの 1 色を割り当てることができます。 次の表は、指定されるビット数に応じて、1 ピクセルに割り当てることができる色数の例を示しています。

ピクセルあたりのビット数 ピクセルに割り当てることができる色数
1 2^1 = 2
2 2^2 = 4
4 2^4 = 16
8 2^8 = 256
16 2^16 = 65,536
24 2^24 = 16,777,216

通常、ビットマップを格納するディスク ファイルには、1 つまたは複数の情報ブロックがあり、ピクセルあたりのビット数、各行のピクセル数、配列内の行の数などの情報が格納されています。 このようなファイルには、カラー テーブル (カラー パレットとも呼ばれる) が含まれている場合もあります。 カラー テーブルによって、ビットマップ内の数値が特定の色にマップされます。 次の図は、拡大した画像をビットマップおよびカラー テーブルと一緒に示しています。 各ピクセルは 4 ビットの数値で表されるため、カラー テーブルには 2^4 = 16 の色があります。 テーブル内の各色は、24 ビットの数値で表されます。赤が 8 ビット、緑が 8 ビット、青が 8 ビットです。 数値は 16 進数 (基数 16) の形式で表示されます (A = 10、B = 11、C = 12、D = 13、E = 14、F = 15)。

Screenshot of an enlarged image with its bitmap and color table.

画像の行 3、列 5 のピクセルを見てください。 ビットマップ内の対応する数値は 1 です。 カラー テーブルでは 1 が赤を表しており、そのピクセルは赤になります。 ビットマップの一番上の行にあるすべてのエントリは 3 です。 カラー テーブルは 3 が青を表しており、画像の一番上の行のピクセルはすべて青になります。

注意

一部のビットマップは下から上の形式で格納されます。つまりビットマップの最初の行の数値が、画像の一番下の行のピクセルに対応します。

カラー テーブルにインデックスを格納するビットマップは、パレットインデックス付きビットマップと呼ばれます。 ビットマップによっては、カラー テーブルを必要としない場合があります。 たとえば、ビットマップでピクセルあたり 24 ビットが使用される場合、カラー テーブルにインデックスを格納せずに、ビットマップそのものに色を格納できます。 次の図は、カラー テーブルを使用せずに、色を直接格納するビットマップ (ピクセルあたり 24 ビット) を示しています。 図には、対応する画像の拡大表示も示されています。 このビットマップでは、FFFFFF は白、FF0000 は赤、00FF00 は緑、0000FF は青を表します。

Screenshot of a bitmap that stores colors directly with an enlarged view of the corresponding image.

グラフィックス ファイル形式

ディスク ファイルにビットマップを保存する標準形式は多数あります。 GDI+ では、次の段落で説明するグラフィックス ファイル形式がサポートされます。

BMP

BMP は Windows によって使用される標準形式であり、デバイスに依存せず、アプリケーションに依存しない画像が格納されます。 所定の BMP ファイルのピクセルあたりのビット数 (1、4、8、15、24、32、または 64) は、ファイル ヘッダーに指定されます。 1 ピクセルあたり 24 ビットの BMP ファイルが一般的です。 通常、BMP ファイルは圧縮されないため、インターネット経由での転送には適していません。

グラフィックス交換形式 (GIF)

GIF は、Web ページに表示される画像の一般的な形式です。 GIF が適しているのは、線の描画、純色のブロックを含む画像、および色の間の境界がくっきりした画像です。 GIF は圧縮されますが、圧縮プロセスで情報が失われません。画像を圧縮解除しても元の画像とまったく同じです。 GIF 内の 1 色は透明として指定できるため、画像が表示される Web ページの背景色が画像に含まれます。 GIF 画像のシーケンスを 1 つのファイルに格納すると、アニメーション GIF が形成されます。 GIF に格納できるのはピクセルあたり最大 8 ビットであるため、256 色に制限されます。

Joint Photographic Experts Group (JPEG)

JPEG は、スキャンされた写真などの自然なシーンに適した圧縮方式です。 一部の情報が圧縮プロセスで失われますが、多くの場合、人間の目では認識できません。 JPEG ではピクセルあたり 24 ビットが格納され、1600 万色以上を表示できます。 JPEG では、透明度やアニメーションはサポートされません。

JPEG 画像の圧縮レベルは構成可能ですが、圧縮レベルを高くすると (ファイルを小さくすると)、失われる情報が多くなります。 20:1 の圧縮率であれば、多くの場合、生成される画像を人間の目で元のものと区別するのは困難です。 次の図は、BMP 画像と、その BMP 画像を圧縮した 2 つの JPEG 画像を示しています。 最初の JPEG の圧縮率は 4:1、2 番目の JPEG の圧縮率は約 8:1 です。

Filetype samples

JPEG 圧縮は、線の描画、純色のブロック、およびくっきりした境界に対して適切に機能しません。 次の図は、BMP、2 つの JPEG、GIF を示しています。 JPEG と GIF は BMP を圧縮したものです。 圧縮率は、GIF が 4:1、小さい JPEG が 4:1、大きい JPEG が 8:3 です。 GIF では線に沿ってくっきりとした境界が維持されますが、JPEG では境界がぼやけてる傾向があることに注意してください。

Filetypes

JPEG は、ファイル形式ではなく圧縮方式です。 JPEG ファイル インターチェンジ形式 (JFIF) は、JPEG 方式に従って圧縮された画像を格納および転送するために一般的に使用されるファイル形式です。 Web ブラウザーに表示される JFIF ファイルでは、.jpg 拡張子が使用されます。

Exchangeable Image File (EXIF)

EXIF は、デジタル カメラで撮影された写真に使用されるファイル形式です。 EXIF ファイルには、JPEG 仕様に従って圧縮された画像が含まれます。 また、EXIF ファイルには、写真の情報 (撮影日、シャッター速度、露出時間など) や、カメラの情報 (製造元、モデルなど) も含まれています。

ポータブル ネットワーク グラフィックス (PNG)

PNG 形式では、GIF 形式の利点の多くを保持しながら、その他の機能が提供されます。 GIF ファイルと同様に、PNG ファイルは圧縮で情報が失われません。 PNG ファイルに格納できる色は、ピクセルあたり 8、24、または 48 ビット、グレースケールはピクセルあたり 1、2、4、8、または 16 ビットです。 これに対して、GIF ファイルで使用できるのはピクセルあたり 1、2、4、または 8 ビットのみです。 PNG ファイルには、各ピクセルのアルファ値を格納することもできます。これによって、そのピクセルの色を背景色とブレンドする度合いが指定されます。

PNG では、GIF の画像を漸進的にプログレッシブに表示する機能が強化されています (つまり、画像がネットワーク接続を介して送られる際に徐々に正確に表示されます)。 PNG ファイルには、ガンマ補正および色補正の情報を含めることができ、さまざまなディスプレイ デバイスで画像を正確にレンダリングできます。

Tag Image File Format (TIFF)

TIFF は、さまざまなプラットフォームやイメージ処理アプリケーションによってサポートされる、柔軟性が高く拡張可能な形式です。 TIFF ファイルは、ピクセルあたり任意の数のビットを含む画像を格納でき、さまざまな圧縮アルゴリズムを使用できます。 いくつかの画像を 1 つのマルチページ TIFF ファイルに格納できます。 画像に関連する情報 (スキャナーの製造元、ホスト コンピューター、圧縮の種類、向き、ピクセルあたりのサンプル数など) をファイルに格納でき、タグを使用して配置することができます。 TIFF 形式は、新しいタグの承認と追加によって、必要に応じて拡張できます。

関連項目