ビットマップファイルとは?ラスター画像の基本構造と代表形式を徹底解説
ビットマップファイルとは
ビットマップファイル(一般に「ラスター画像」や「ラスタ形式」とも呼ばれる)は、画像をピクセル(画素)の格子状配列として保存するファイル形式の総称です。各ピクセルには色の情報が割り当てられており、これらを並べることで写真やイラストが表現されます。解像度(ピクセル数)と色深度(ビット深度)が画像品質やファイルサイズに直接影響します。
基本構造と基本概念
ビットマップ画像は「幅 × 高さ」のピクセル行列で構成され、各ピクセルに付随するビット(またはバイト)が色情報を表します。主な用語は以下の通りです。
- ピクセル(pixel): 画像を構成する最小単位。
- 解像度: 横ピクセル数と縦ピクセル数。例: 1920×1080。
- 色深度(bits per pixel, bpp): 1, 4, 8, 16, 24, 32ビットなど。ビット数が大きいほど表現可能な色数が増える。
- インデックスカラー(パレット): 8ビット以下の画像で色テーブル(パレット)を用いる方式。
- DPI / PPI: 印刷や表示での「インチあたりのドット(ピクセル)」。ファイル自体はピクセル数を持ち、DPIは出力時の目安。
色深度の例
- 1-bit: モノクロ(2色)
- 4-bit: 16色(パレット)
- 8-bit: 256色(パレット)
- 16-bit: 5/6/5(R5:G6:B5)等、中間色
- 24-bit: 8ビット×3(R8:G8:B8)、約1,677万色
- 32-bit: 24-bitにアルファ(透明度)8ビットを加えたもの(R8:G8:B8:A8)
代表的なビットマップファイル形式
- BMP(Bitmap)
Microsoftが定義した単純な無圧縮〜低圧縮の形式。ヘッダ(BITMAPFILEHEADER、BITMAPINFOHEADER)とパレット、ピクセル配列から構成されます。各スキャンラインは4バイト境界にパディングされるなど仕様上の注意点があります。主にWindows内部や簡易保存で使われますが、ファイルサイズが大きくなる欠点があります。
- PNG(Portable Network Graphics)
可逆圧縮(DEFLATE)を用いる形式で、アルファチャンネルをサポートします。スクリーンショットや透明画像、ロゴなどで広く使われます。ガンマや色空間に関するメタデータ(gAMA, cHRM, iCCPなど)も扱えます。
- JPEG(JPG)
写真向けの非可逆圧縮形式。離散コサイン変換(DCT)や量子化により高い圧縮率を実現しますが、ブロックノイズやリングイングなどのアーティファクトが発生する場合があります。透過情報は基本サポートしません(JPEG 2000等は別)。
- GIF
8ビットパレット(最大256色)とアニメーションをサポートする古典的な形式。LZW圧縮を用います。色数が少ないため写真には不向きだが、単純なアニメやアイコンに適しています。
- TIFF
多用途で拡張性の高い形式。可逆(LZW、ZIP等)や非可逆(JPEG)圧縮をサポートし、マルチページやメタデータ管理が可能なため印刷・アーカイブ用途で広く使われます。
- WebP / AVIF
比較的新しい画像形式で、WebP(Google)は可逆・非可逆両対応、アルファもサポート。AVIF(AV1ベース)はさらに高圧縮効率を持ちます。ブラウザやプラットフォームの対応状況を確認して利用します。
BMPファイルの内部構造(技術解説)
BMPは典型的に以下の構造を持ちます(詳細はバージョンによる)。
- ファイルヘッダ(BITMAPFILEHEADER): ファイルタイプ、サイズ、ピクセルデータのオフセット等。
- 情報ヘッダ(BITMAPINFOHEADER など): 画像の幅・高さ・ビット深度・圧縮方式・カラーパレットの情報。
- カラーパレット(存在する場合): 8ビット以下の画像で使用。
- ピクセル配列(ビットマップデータ): 下から上へ(SDL等とは逆)保存されることが多いバリエーションもあります。
注意点として、BMPの各スキャンラインは4バイト境界に揃えるパディングが入るため、メモリ上の幅とファイル上の行長が異なることがあります。
圧縮と画質(可逆 vs 非可逆)
画像圧縮には主に可逆圧縮と非可逆圧縮があります。可逆は元画像を完全に復元でき(例: PNGのDEFLATE、LZW)、非可逆は情報を捨てることで高圧縮率を達成します(例: JPEGのDCT+量子化)。用途ごとに使い分けが重要です。写真や多数色を含む自然画像はJPEG/AVIF/WebPが効率的、図表や透明画像はPNGやWebPの可逆が適します。
カラースペースとガンマ、アルファ(透明)について
単にRGB値を保存するだけでは色が異なるデバイスで同じに見えるとは限りません。sRGBやAdobe RGBといったカラースペース(及びICCプロファイル)を扱うことで色再現の一貫性を得られます。PNGなどはiCCPチャンクでプロファイルを埋め込めます。ガンマ補正の扱いも注意が必要で、ガンマを無視すると明るさやコントラストに違いが出ます。
アルファチャネルは透明度を表す追加チャネルで、合成(ブレンド)時に重要です。アルファ合成には「非乗算(straight)アルファ」と「乗算(premultiplied)アルファ」の2種類があり、処理方法の違いで表示結果やフィルタ適用時の挙動が変わります。
画像編集・拡大縮小の注意点
ビットマップは拡大するとピクセルが拡大され画質劣化(ボケやのこぎり状エッジ)が生じます。拡大・縮小はリサンプリングアルゴリズム(最近傍、双線形、双三次、Lanczos等)によって結果が変わります。写真のような滑らかな画像には高品質なフィルタ(bicubicやLanczos)が推奨されますが、アイコンやピクセルアートは最近傍で鮮明さを保つことがあります。
また、JPEGなどの非可逆圧縮は何度も保存を繰り返すと劣化が蓄積するため、編集時は可逆フォーマット(PNG、TIFF等)やレイヤー保持が可能なPSD/XCFなどを使い最終出力時に一回だけ圧縮する運用が望ましいです。
ウェブ・制作での実務的選択指針
- 写真系: 高圧縮効率のJPEG、WebP、AVIFを検討(ブラウザ対応を確認)。
- 透過やロゴ、スクリーンショット: PNG(可逆)や透過対応のWebP。
- アニメーション: GIF(古典)またはAPNG/WebP(より効率的)。
- アイコン・シンプル図形: SVG(ベクタ)を優先。解像度依存がない。
- レスポンシブ対応: 複数解像度で画像を用意し srcset 等を活用。
- 最適化: 画像を適切な画素数にリサイズし、必要以上の色深度やメタデータを削除してファイルサイズを小さくする。
メモリとファイルサイズの計算
単純な概算式は「ファイルサイズ ≒ 幅 × 高さ × (ビット深度) / 8」です(可逆/非可逆圧縮を考慮しない生データ)。例: 1920×1080、24ビットの場合は 1920×1080×3 ≒ 6,220,800 バイト(約5.93MB)。BMP等では各行のパディング(4バイト境界)やヘッダ分が加わる点に注意してください。圧縮形式はこの値より大幅に小さくなるか、逆にメタデータ次第では大きくなることがあります。
実装・ツール
ビットマップの読み書きや変換には多くのライブラリ・ツールがあります。libpng、libjpeg、ImageMagick、GraphicsMagick、GIMP、Photoshopなどは広く使われており、Web向け最適化ツール(mozjpeg、cjpeg、pngquant、svgo、cwebp等)を併用することで品質とサイズのバランスを取れます。
まとめ
ビットマップファイルはピクセル単位で画像を表現する形式であり、用途に応じて適切なファイル形式(可逆/非可逆、アルファの有無、カラースペース等)を選択することが重要です。編集や出力時の画質劣化、色再現、パフォーマンスやファイルサイズの観点を理解して使い分けることで、見た目と効率の両立が可能になります。
参考文献
- Raster graphics — Wikipedia
- Bitmap storage — Microsoft Docs
- BMP file format — Wikipedia
- PNG (Portable Network Graphics) Specification — W3C
- JPEG — Official Website (jpeg.org)
- TIFF Revision 6.0 Specification — Adobe
- WebP — Google Developers
- AVIF — AOMedia
- International Color Consortium (ICC)
- Alpha compositing — Wikipedia
- ImageMagick — Image processing tools


