ビットマップの種類
ビットマップは、ピクセルの四角形配列内の各ピクセルの色を指定するビットの配列です。 個々のピクセルに割り当てられるビット数によって、そのピクセルに割り当てることができる色の数が決まります。 たとえば、各ピクセルが 4 ビットで表される場合、特定のピクセルに 16 種類の色 (2^4 = 16) のいずれかを割り当てることができます。 次の表に、特定のビット数で表されるピクセルに割り当てることができる色の数の例をいくつか示します。
ピクセルあたりのビット数 | ピクセルに割り当てることができる色の数 |
---|---|
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。
画像の行 3、列 5 のピクセルを見てください。 ビットマップ内の対応する数値は 1 です。 カラー テーブルは、1 が赤の色を表し、ピクセルが赤であることを示します。 ビットマップの先頭行のすべてのエントリは 3 です。 カラー テーブルは、3 が青を表すので、画像の先頭行のすべてのピクセルが青であることを示します。
手記
一部のビットマップはボトムアップ形式で格納されます。ビットマップの最初の行の数値は、画像の下部行のピクセルに対応します。
カラー テーブルにインデックスを格納するビットマップは、パレット インデックス付きビットマップと呼ばれます。 一部のビットマップでは、カラー テーブルは必要ありません。 たとえば、ビットマップでピクセルあたり 24 ビットを使用する場合、そのビットマップはインデックスではなく色自体をカラー テーブルに格納できます。 次の図は、カラー テーブルを使用するのではなく、色を直接 (1 ピクセルあたり 24 ビット) 格納するビットマップを示しています。 図は、対応する画像の拡大図も示しています。 ビットマップでは、FFFFFF は白、FF0000 は赤、00FF00 は緑、0000FF は青を表します。
グラフィックス ファイル形式
ディスク ファイルにビットマップを保存するための標準形式は多数あります。 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 画像のシーケンスは、アニメーション GIF を形成するために 1 つのファイルに格納できます。 GIF はピクセルあたり最大 8 ビットを格納するため、256 色に制限されています。
共同写真エキスパート グループ (JPEG)
JPEG は、スキャンされた写真などの自然なシーンに適した圧縮スキームです。 圧縮プロセスでは一部の情報が失われますが、多くの場合、損失は人間の目には認識できません。 JPEG は 1 ピクセルあたり 24 ビットを格納するため、1,600 万色を超える色を表示できます。 JPAG は透明度やアニメーションをサポートしていません。
JPEG 画像の圧縮レベルは構成できますが、圧縮レベルが高いほど (ファイルが小さくなり)、情報が失われます。 20:1 圧縮率では、多くの場合、人間の目が元の画像と区別しにくい画像が生成されます。 次の図は、BMP イメージとその BMP イメージから圧縮された 2 つの JPEG イメージを示しています。 最初の JPEG の圧縮率は 4:1 で、2 番目の JPEG の圧縮率は約 8:1 です。
JPEG 圧縮は、線画、純色のブロック、シャープな境界には適していません。 次の図は、BMP と 2 つの JPEG と GIF を示しています。 JPAG と GIF は BMP から圧縮されました。 圧縮率は、GIF の場合は 4:1、小さい JPEG の場合は 4:1、大きい JPEG の場合は 8:3 です。 GIF は線に沿って鋭い境界を維持しますが、JPEG は境界をぼかす傾向があることに注意してください。
に対して
JPEG は圧縮スキームであり、ファイル形式ではありません。 JPEG ファイル交換形式 (JFIF) は、JPEG スキームに従って圧縮された画像を格納および転送するために一般的に使用されるファイル形式です。 Web ブラウザによって表示される JFIF ファイルは、.jpg 拡張子を使用します。
Exchangeable Image File (EXIF)
EXIF は、デジタル カメラでキャプチャされた写真に使用されるファイル形式です。 EXIF ファイルには、JPEG 仕様に従って圧縮された画像が含まれています。 EXIF ファイルには、写真に関する情報 (撮影日、シャッター速度、露出時間など) とカメラに関する情報 (製造元、モデルなど) も含まれています。
ポータブル ネットワーク グラフィックス (PNG)
PNG 形式は GIF 形式の利点の多くを保持しますが、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 形式は、新しいタグの承認と追加によって必要に応じて拡張できます。
関連項目
.NET Desktop feedback