次の方法で共有


ビットマップの種類

更新 : 2007 年 11 月

ビットマップは、四角形のピクセル配列内での各ピクセルの色を指定するビット配列です。各ピクセルで使用できるビット数により、そのピクセルに割り当てることができる色の数が決定します。たとえば、各ピクセルが 4 ビットで表現される場合は、任意のピクセルに対して 16 色 (2^4 = 16) のうちの 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 です。

ビットマップ サンプル

イメージの行 3、列 5 にあるピクセルに注目してください。ビットマップ内で対応する数値は 1 です。色テーブルによると 1 は赤に相当するため、このピクセルは赤になります。ビットマップの一番上の行のエントリはすべて 3 です。色テーブルによると 3 は青に相当するため、イメージの一番上の行のピクセルはすべて青になります。

メモ :

下から上の形式で格納されるビットマップの場合は、ビットマップの最初の行の数値がイメージの一番下の行のピクセルに対応します。

インデックスを色テーブルに格納するビットマップを "パレット インデックス付き" ビットマップと呼びます。色テーブルが不要であるビットマップもあります。たとえば、ピクセルあたり 24 ビットを使用するビットマップの場合は、インデックスを色テーブルに格納しなくても色を直接格納できます。色テーブルを使用しないで色を直接 (ピクセルあたり 24 ビット) 格納するビットマップを次の図に示します。この図には、ビットマップに対応するイメージを拡大した表示もあります。このビットマップでは、FFFFFF は白に、FF0000 は赤に、00FF00 は緑に、0000FF は青に相当します。

ビットマップ サンプル

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

ビットマップをディスク ファイルに保存するための標準形式は多数あります。GDI+ では、次に示すグラフィックス ファイル形式をサポートしています。

BMP

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

GIF (Graphics Interchange Format)

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

JPEG (Joint Photographic Experts Group)

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

JPEG イメージでは圧縮レベルを設定できますが、圧縮レベルを高くする (ファイルを小さくする) と、情報の損失が大きくなります。通常、20:1 の圧縮比で生成されたイメージと元のイメージの違いは、人間の目ではほとんど認識できません。1 つの BMP イメージおよびその BMP イメージから圧縮された 2 つの JPEG イメージを次の図に示します。1 番目の JPEG の圧縮比は 4:1 で、2 番目の JPEG の圧縮比は約 8:1 です。

ファイルの種類サンプル

JPEG の圧縮は、直線の描画、純色のブロック、および境界が鮮明なピクチャの処理には適していません。1 つの BMP、2 つの JPEG、および 1 つの GIF を次の図に示します。JPEG と GIF は、BMP から圧縮されたイメージです。GIF の圧縮比は 4:1、小さい JPEG の圧縮比は 4:1、大きい JPEG の圧縮比は 8:3 です。GIF では直線に沿って鮮明な境界が維持されていますが、JPEG では境界がぼやける傾向があります。

ファイルの種類

JPEG は圧縮スキームであり、ファイル形式ではありません。JPEG スキームに基づいて圧縮されたイメージを格納および転送するためのファイル形式として、JFIF (JPEG File Interchange Format) が一般的に使用されています。Web ブラウザで表示される JFIF ファイルは、.jpg 拡張子を使用します。

EXIF (Exchangeable Image File)

EXIF は、デジタル カメラでキャプチャした写真のために使用されるファイル形式です。EXIF ファイルには、JPEG 仕様に基づいて圧縮されたイメージが格納されます。EXIF ファイルには、写真についての情報 (撮影日付、シャッター速度、露出時間など) およびカメラについての情報 (メーカー、モデルなど) も格納されます。

PNG (Portable Network Graphics)

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

PNG は、イメージを同時進行で表示できる点が GIF よりも優れています。つまり、ネットワーク接続経由でデータを受信するのと並行して、近似イメージの精度を上げながら表示できます。PNG ファイルは、ガンマ補正情報と色補正情報を格納できるため、イメージをさまざまなディスプレイ デバイス上で正確にレンダリングできます。

TIFF (Tag Image File Format)

TIFF は、さまざまなプラットフォームおよびイメージ処理アプリケーションで広くサポートされる、柔軟性と拡張性の高い形式です。TIFF ファイルは、ピクセルあたり任意のビット数を持つイメージを格納でき、さまざまな圧縮アルゴリズムを使用できます。いくつかのイメージを複数のページから成る単一の TIFF ファイルに格納できます。イメージに関連する情報 (スキャナの種類、ホスト コンピュータ、圧縮の種類、イメージの向き、ピクセルあたりのサンプル数など) は、ファイルに格納でき、タグを使用して変更できます。必要に応じて、新しいタグを承認および追加して、TIFF 形式を拡張できます。

参照

参照

System.Drawing.Image

System.Drawing.Bitmap

System.Drawing.Imaging.PixelFormat

その他の技術情報

イメージ、ビットマップ、およびメタファイル

イメージ、ビットマップ、アイコン、およびメタファイルの操作