使い方
- Base64 文字列または data:image/bmp;base64 URI を貼り付けます。PNG、JPEG、WebP などの形式にも対応しています。
- プレビュー、画像サイズ、デコード後のサイズを確認します。
- 「保存形式」には BMP があらかじめ選択されています。データがすでに BMP で、そのまま保存したい場合は、代わりに「オリジナル」を選択します。
- .bmp ファイルをダウンロードします。
Base64 のビットマップを見分ける
Windows のビットマップファイルは 2 文字の BM で始まり、これは Base64 文字列の先頭で Qk にエンコードされます。その後に続くヘッダーには、ファイルサイズ、ピクセルデータのオフセット、画像サイズ、ビット深度が格納されています。BMP データは、古い Windows アプリケーション、クリップボードやスクリーンショットのエクスポート、POS システムや産業用システム、マイコン用のディスプレイツール、テストフィクスチャなどで見かけます。MIME タイプは通常 image/bmp ですが、image/x-ms-bmp も使われます。
ブラウザは一般的な BMP の種類を表示できますが、非常に古い OS/2 ビットマップや珍しい圧縮モードは、ブラウザによっては表示されないことがあります。文字列が Qk で始まるのにプレビューが空のままの場合は、「オリジナル」でダウンロードしてデスクトップの画像ビューアーで開いてください。
BMP ファイルが大きくなる理由
このツールは非圧縮の 32 ビットピクセル(1 ピクセルあたり 4 バイト)で書き出すため、ファイルサイズは内容に関係なく画像サイズだけで決まります。
| 画像サイズ | BMP のサイズ | Base64 の場合 |
|---|---|---|
| 640 × 480 | 約 1.2 MB | 約 1.6 MB |
| 1920 × 1080 | 約 8.3 MB | 約 11 MB |
| 3840 × 2160 | 約 33 MB | 約 44 MB |
同じスクリーンショットでも PNG なら 10 分の 1 程度のサイズになることがよくあります。BMP は、受け取る側のソフトウェアが必要とする場合にのみ使用してください。
32 ビット出力について
出力にはアルファチャンネルが含まれるため、アルファチャンネルを読み込めるプログラムでは透明な部分が透明のまま表示されます。古いプログラムの中にはアルファチャンネルを無視するものがあり、その部分が黒や白で表示されることがあります。その場合は、変換前に元の画像から透過を取り除いてください。
Windows でブラウザを使わずに Base64 の BMP をデコードするなら、PowerShell で十分です。
$b64 = Get-Content .\image.txt -Raw
[IO.File]::WriteAllBytes("$PWD\image.bmp", [Convert]::FromBase64String($b64))
よくある質問
BMP が元のファイルよりはるかに大きいのはなぜですか?
BMP の出力は非圧縮で、1 ピクセルあたり 4 バイトを使用します。同じ画像でも、圧縮された PNG や JPEG のほうが通常ははるかに小さくなります。
BMP は透過に対応していますか?
はい。このツールが作成する 32 ビット BMP ファイルにはアルファチャンネルが含まれます。透過が表示されるかどうかは、ファイルを開くプログラムによって異なります。
Base64 文字列が BMP かどうかはどうすれば分かりますか?
BM を Base64 にした Qk で始まります。このツールはヘッダーのバイト列を読み取って形式を確認します。