ビットマップの種類

ビットマップは、ピクセルの四角形配列内の各ピクセルの色を指定するビットの配列です。 個々のピクセルで使用されるビット数によって、そのピクセルに割り当てることができる色の数が決まります。 たとえば、各ピクセルが 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 ピクセルあたりのビット数、各行のピクセル数、配列内の行数などの情報を格納する 1 つ以上の情報ブロックが含まれます。 このようなファイルには、カラー テーブル (カラー パレットとも呼ばれる) が含まれている場合もあります。 カラー テーブルによって、ビットマップ内の数値が特定の色にマップされます。 次の図は、拡大した画像をビットマップおよびカラー テーブルと一緒に示しています。 各ピクセルは 4 ビットの数値で表されるため、カラー テーブルには 2^4 = 16 の色があります。 テーブル内の各色は、24 ビットの数値で表されます。赤が 8 ビット、緑が 8 ビット、青が 8 ビットです。 数値は 16 進数 (基数 16) の形式で表示されます (A = 10、B = 11、C = 12、D = 13、E = 14、F = 15)。

数値のマトリックス、画像、およびマトリックス番号を色に一致させるテーブルを示す図

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

注意

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

 

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

16 進数の値の行列の図、その後に数値が表すビットマップ イメージ

 

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

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

ビットマップ (BMP)

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

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

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

Joint Photographic Experts Group (JPEG)

JPEG は、スキャンされた写真などの自然なシーンに適した圧縮スキームです。 一部の情報が圧縮プロセスで失われますが、多くの場合、人間の目では認識できません。 カラー JPEG 画像には 1 ピクセルあたり 24 ビットが格納されるため、1,600 万色を超える色を表示できます。 ピクセルあたり 8 ビットを格納するグレースケール JPEG 形式もあります。 JPEG では、透明度やアニメーションはサポートされません。

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

ビットマップ画像とその画像の2つのjpeg圧縮を示す図。圧縮率が最も高い場合は、元の圧縮よりも多くのバリエーションがあります

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

線画のビットマップを 2 つの jpeg と 1 つの gif に比較する図。gif は色と線の鮮明さを維持するのに最適です

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 ピクセルあたり 1、2、4、8、または 16 ビットの灰色のスケールを格納できます。 これに対して、GIF ファイルで使用できるのはピクセルあたり 1、2、4、または 8 ビットのみです。 PNG ファイルには、各ピクセルのアルファ値を格納することもできます。これによって、そのピクセルの色を背景色とブレンドする度合いが指定されます。

PNGは、徐々に画像を表示する能力でGIFを改善します。つまり、ネットワーク接続経由で到着したイメージのより良い近似値を表示します。 PNG ファイルには、ガンマ補正および色補正の情報を含めることができ、さまざまなディスプレイ デバイスで画像を正確にレンダリングできます。

Tag Image File Format (TIFF)

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