Windowsビットマップ (.bmp)

Microsoft 標準

Bitmap Image File (BMP) は、Microsoft社の基本的なデバイス非依存ラスターグラフィックス形式であり、非圧縮またはRLE圧縮されたスキャンラインをハードウェアのフレームバッファと直接互換性を持たせて格納します。

BMP を PNG に変換

無料のブラウザ内 BMP から PNG へのコンバーター。お使いのデバイスでファイルを即座に変換します。

調査とメタデータ

オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで BMP ファイルを識別します:

ここにファイルを選択またはドロップ

100%プライベートなブラウザ内変換 - ファイルがデバイスから外部に出ることはありません

または貼り付け Ctrl+V
ネットワーク送信ゼロのプライバシー保証: 外部サーバーへのデータ送信は0バイトです。すべての処理はお使いのブラウザのサンドボックス内でローカルに実行されます。

バイトレベルのヘッダーシグネチャ (マジックバイト)

オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで BMP ファイルを識別します:

16進数シグネチャ (オフセット 0):

42 4D

ASCII表現: BM

標準化: Microsoft Windows Device-Independent Bitmap (DIB) Architecture

技術仕様

コンテナアーキテクチャBITMAPFILEHEADER followed by BITMAPINFOHEADER (DIB) and raster pixel array
圧縮Uncompressed raw scanlines, or optional BI_RLE8 / BI_RLE4 run-length encoding
バイトエンディアンLittle-Endian (Intel x86 byte order)
色空間Device Dependent RGB, sRGB (BITMAPV5HEADER embedded)
チャンネルと構造1-bit monochrome, 4-bit / 8-bit paletted, 16-bit, 24-bit RGB, or 32-bit RGBA
最大寸法2,147,483,647 x 2,147,483,647 pixels (signed 32-bit integer)
透過性32-bit BGRA alpha mask supported in modern BITMAPV3HEADER and V5HEADER formats
ストリーミングとプログレッシブNon-streamable; scanlines stored upside-down (bottom-up) unless height is negative

技術比較マトリックス: BMP 対 競合製品

技術属性BMP (現在)PNGTIFFJPG
圧縮モード非圧縮 / 最小限のRLEロスレスDeflate(約70%小型)非圧縮 / LZW / Zip非可逆DCT(約90%小型)
デコード速度瞬時のメモリコピーDeflate解凍が必要LZW/ZIP解凍が必要IDCT計算が必要
スキャンライン順序下から上(反転)上から下上から下 / ストリップ上から下 MCUブロック
ウェブ適性非常に不向き(ペイロードが肥大化)グラフィックスに最適不向き(デスクトップパブリッシング)写真に最適

一般的な破損モードと16進数リカバリガイド

画像が斜めに剪断(シアー)されたり、角度が歪んだりして描画される。

根本原因: 行パディングの計算が誤っている(各スキャンラインを4バイト境界にパディングし忘れている)。

復旧: File2File Image Converterを使用して再エンコードし、正しい32ビットスキャンラインストライドを強制する。

セキュリティ分析とパーサー攻撃ベクトル

BMPデコーダーは、信頼できないDIBヘッダーの寸法に基づいてバッファを割り当てる際、バッファオーバーリードの脆弱性を抱えがちです。

既知の攻撃ベクター

  • width * height * bpp の計算における整数オーバーフローにより、小さなヒープ割当と範囲外書き込みを引き起こす。
  • 破損したRLE8/RLE4ランレングスエスケープシーケンスにより、割り当てられたバッファを超えたメモリ書き込みが発生する。
  • 巧妙に細工されたヘッダー寸法によって引き起こされる、マルチギガバイトのメモリ割り当てを介したサービス拒否(DoS)。

防御的ベストプラクティス:

歴史的背景とマイルストーン

1998Windows 98で BITMAPV5HEADER が導入され、ICCカラープロファイル管理とガンマ補正が追加されました。
1990Windows 3.0により、オペレーティングシステム全体で BITMAPINFOHEADER DIB仕様が標準化されました。
1987Windows 2.0およびOS/2 1.1と共に、ネイティブディスプレイラスター形式として導入されました。

主な利点とメリット

  • 圧縮劣化ゼロ:圧縮アーティファクトなしで、100%ビット完全なピクセルストレージを実現。
  • Windows、Linux、macOSのすべてのバージョンにおけるユニバーサルなネイティブオペレーティングシステムサポート。
  • 極めてシンプルなデコード複雑性により、組み込みマイクロコントローラーやグラフィックスプログラミング教育に最適。

技術的な制限とデメリット

  • DEFLATEやハフマン符号化のような現代のエントロピー圧縮がないため、ファイルサイズが非常に巨大になる。
  • ウェブ転送やモバイルネットワーク配信には非効率。
  • ボトムアップ方式のスキャンライン順序のため、現代のトップダウン式グラフィックスパイプラインでは垂直方向の行反転が必要。

興味深い技術トリビア

  • BMPは、OS/2で使用されている数学的デカルト座標系のため、デフォルトで画像の走査線を上下逆(下から上)に格納します。
  • BMPヘッダーの高さ値に負数を設定すると、画像は正立(上から下)でデコードされます。
  • BMPファイルのすべてのスキャンラインは、4バイトの倍数(32ビット境界アライメント)になるようにゼロパディングする必要があります。

よくある技術的な質問

BMP ファイルのサイズが非常に大きいのはなぜですか?

BMP ファイルは、すべてのピクセルに対して未圧縮の生の色値を格納するためです。一方、PNG などのフォーマットは、画質を一切落とさずにデータを圧縮します。

BMP は透明度をサポートしていますか?

はい。32 ビット BMP ファイル(BITMAPV3HEADER 以降を使用)は 8 ビットのアルファチャンネルを格納できますが、古いソフトウェアではサポート状況が異なる場合があります。

BMP ファイルのサイズを小さくするにはどうすればよいですか?

File2File.app を使って BMP ファイルを PNG に変換すると、視覚的な品質を一切損なうことなく、通常ファイルサイズを 60% から 85% 削減できます。