ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
BMP (Bitmap、正式には Device-Independent Bitmap = DIB) は、1987 年に Microsoft と IBM が OS/2 1.x のために定義し、その後 Windows でも採用された画像形式である。拡張子は .bmp。「とにかく単純」がコンセプトで、画素データをほぼそのままディスクに置く設計のため、デコーダがほぼ無くてもパースできる教材的な形式として広く知られる。
その単純さの代償として圧縮はほぼ効かず、1920×1080 ピクセルの 24bit カラー画像はおよそ 6MB、4K (3840×2160) では 24MB に達する。ウェブ配信には全く不向きで、現代では「Windows のペイントで保存」「組み込み機器の画面リソース」「Win32 リソースに埋め込むダイアログ画像」など、Microsoft プラットフォームのレガシー用途と局所的なツール内交換に限られる。
内部構造とマジックナンバー
| 場所 | HEX / ASCII | 意味 |
|---|---|---|
| 先頭 2 バイト | 42 4D = BM | BMP のシグネチャ (Bitmap) |
| 3-6 バイト | 4 バイト LE | ファイル全体のサイズ |
| 7-10 バイト | 予約 | 通常 0 |
| 11-14 バイト | 4 バイト LE | 画素データへのオフセット |
| 15-18 バイト | 4 バイト LE | DIB ヘッダのサイズ (40 なら BITMAPINFOHEADER、124 なら V5) |
| その後 | DIB ヘッダ本体 | 幅・高さ・ビット深度・圧縮種別・色数 |
| 必要なら | カラーパレット | 1/4/8 bit のとき RGBA の表 |
| 末尾 | 画素データ | 下から上、行は 4 バイト境界 |
DIB ヘッダはいくつもバージョンがあり、Windows 3.0 時代の BITMAPINFOHEADER (40 バイト) と、最近の BITMAPV5HEADER (124 バイト、ICC プロファイル対応) では機能差が大きい。多くの実装は BITMAPINFOHEADER までしかサポートしない。
主な用途
- Windows のペイントの既定保存形式 (旧来): 現在の Windows 11 ペイントは PNG 既定だが、過去のバージョンは BMP だった。
- Win32 リソース (.rc ファイルから埋め込む画像): ダイアログのビットマップ、ツールバーアイコンなど。
- 組み込み機器の画面表示: マイコン搭載の液晶表示で、デコーダを書く手間が惜しいときに BMP を直に流し込む。
- スキャナ・古い業務アプリの出力: 「とりあえず無劣化で保存」する用途で生き残っている。
- クリップボードの内部表現: Windows のクリップボードでビットマップを受け渡すときの主要形式 (CF_DIB / CF_BITMAP)。
関連形式との比較
| 形式 | 圧縮 | 透過 | 1920×1080 24bit のサイズ | 得意分野 |
|---|---|---|---|---|
| BMP | 基本なし (RLE は限定的) | 32bit BMP のみ | 約 6MB | Windows レガシー・教材 |
| PNG | 可逆 Deflate | 8bit α | 1-3MB | UI・スクリーンショット |
| TIFF | 可逆 LZW/ZIP / 非可逆 | あり | 1-6MB | 印刷・スキャナ |
| JPEG | 非可逆 | なし | 0.2-0.5MB | 写真 |
| WebP lossless | 可逆 | あり | 1-2MB | ウェブ無劣化 |
同じ無劣化用途なら BMP より PNG / WebP lossless / TIFF の方が圧倒的にファイルサイズが小さく、特別な理由がない限り BMP を選ぶ必然性はない。
編集・閲覧ツール
- Windows ペイント / フォト: 開く・保存とも標準対応。
- IrfanView / XnView: 大量変換に強い軽量ビューア。BMP → PNG の一括変換に向く。
- GIMP / Photoshop: 編集の主力。GIMP は DIB ヘッダ種別を選んで書き出せる。
- ImageMagick:
magick in.bmp out.pngで変換。逆もできる。 - Visual Studio リソースエディタ: .rc ファイルへの BMP 埋め込みに使う。
注意点・落とし穴
- 巨大化: 4K 解像度の BMP は数十 MB に達する。メール添付やチャットでの共有には PNG / JPEG に変換してから渡す。
- 行が下から上に並ぶ: 自作デコーダを書くときに最頻出のミス。height が 正なら下→上 (ボトムアップ)、負なら上→下 (トップダウン)。
- 4 バイト境界パディング: 行のバイト数は必ず 4 の倍数で、足りないバイトはゼロパディング。これを忘れて画像が右に流れていく不具合は定番。
- 32bit BMP の α の扱い: ヘッダで BI_BITFIELDS と RGBA マスクを正しく指定しないと、アルファが無視されて全部不透明として描画される実装が多い。
- ブラウザ表示: BMP を
<img>で参照すれば主要ブラウザは表示できるが、無圧縮ゆえ転送量が悲惨。ウェブ用途では絶対に避ける。 - ICO ファイルとの関係: ICO は内部で BMP (もしくは PNG) を複数解像度束ねた形式。BMP の知識がそのまま ICO の理解に繋がる。
関連リンク
- 画像形式 — 本カテゴリの親ページ
- ファイル拡張子とは — 拡張子全般の概論
- PNG (.png) — 可逆かつ圧縮あり。BMP の上位互換
- TIFF (.tiff / .tif) — 印刷・スキャナの可逆形式
- JPEG (.jpg / .jpeg) — 写真用途では BMP より圧倒的に小さい
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?