BMPが大きい理由
一般的なBMPは、ピクセルごとに青・緑・赤の3バイトを圧縮せずに保存し、各行を4バイトの倍数に埋めます。そのため容量は解像度だけで決まり、ヘッダー54バイト + 高さ × 埋めた行の長さになります。MDNもこの理由でWebコンテンツにはBMPを避けるよう勧めています。
PNGは各ピクセルを隣のピクセルから予測し、その差を可逆で圧縮します。単色・文字・ドット絵はほぼ完全に予測できるので大きく縮み、カメラのノイズは予測しにくいので写真はそこそこしか縮みません。どちらでも失うものはなく、計測したPNGはBMPとまったく同じピクセルに展開されました。
- 非圧縮
- ピクセルのバイトをそのまま保存。容量は幅と高さだけで決まります。
- 行のパディング
- BMPの各行は4バイトの倍数に切り上げられます。
- 可逆
- PNGがBMPにあったピクセルとまったく同じに展開されること。
容量の計算と実測2件
BMPの容量は形式の構造から計算し、PNGの容量は2026-09-28にChromium 153でNerulioの変換を使って計測しました(BMPはリポジトリのテスト素材からPillow 12.3で作成)。
写真 512 x 512: 行 = 512 x 3 = 1,536 バイト(すでに4の倍数)
54 + 512 x 1,536 = 786,486 バイト BMP -> 575,694 バイト PNG (-27 %)
タイル 203 x 186: 行 = 203 x 3 = 609 -> 612 バイトに埋める
54 + 186 x 612 = 113,886 バイト BMP -> 16,685 バイト PNG (-85 %)
両PNGで変化したピクセル: 0
タイルシートはKenneyのCC0「Tiny Dungeon」のタイルマップを黒背景に合成したものです。可逆WebP(画質100)では6,318バイトまで縮み、こちらもピクセルは同一でした。
PNGに残るもの
| BMPにあったもの | 変換での処理 | PNGでは |
|---|
| 24ビットのピクセル | 可逆で保存 | ピクセル同一 |
|---|
| 行のパディングと下から上への並び | ブラウザのデコーダーが処理 | PNGでは不要 |
|---|
| 解像度で決まる容量 | DEFLATE圧縮に置き換え | 容量は内容次第 |
|---|
| ヘッダーの解像度(DPI) | コピーしない | DPI情報なし |
|---|
結果の確認
- 2つのファイルを100%で開きます。どちらも可逆なので、まったく同じに見えるはずです。
- 幅と高さがBMPと同じか確認します。
- バイト数を比べます。スクリーンショットやグラフィックは写真よりずっと大きく縮みます。
トラブルシューティング
| 症状 | 考えられる原因 | 確認方法 | 対処 |
|---|
| 「画像を開けません」と出る | ブラウザが展開できない特殊なBMP(圧縮付き、特殊なビット深度) | ブラウザでBMPを直接開いてみる | 作成したソフトで標準の24ビットBMPかPNGとして保存し直します |
|---|
| PNGが少ししか小さくならない | 写真なので、PNGでもノイズがうまく圧縮できない | 容量を比べる | 写真ならBMP → JPGで10分の1になります |
|---|
| レイアウトソフトで印刷サイズが変わった | BMPのDPIがコピーされず、ソフトが既定値を使った | そのソフトで画像のDPIを確認 | レイアウトソフト側でサイズを指定します。ピクセル数は変わっていません |
|---|
| 古いビューアで色が違って見える | PNGにカラープロファイルがなく、ビューアが色を別に扱うことがある | ブラウザで比べる | 最新のビューアを使います。ピクセル値は同一です |
|---|
ほかの方法
| 方法 | こんなときに向いています |
|---|
| BMP → JPG | ピクセルの正確さより10分の1の容量が大事なカメラ写真。 |
|---|
| 画質100のWebPに変換 | 渡し先がWebPを読める場合。可逆でさらに小さくなります(タイルシートで6,318対16,685バイト)。 |
|---|
この方法の限界
- 読み込めるのは、ブラウザが展開できるBMPだけです。
- DPIなどのヘッダー情報は引き継ぎません。
バージョンと出典
BMPの容量はMDNが説明する構造(1ピクセル3バイト、行は4バイトに埋める)に従って計算しました。PNGの容量とピクセル差0は、2026-09-28にPlaywright Chromium 153でNerulioの変換経路を使い、tests/fixtures/astronaut.png と tests/fixtures/kenney/tiny-dungeon-tilemap.png からPillow 12.3で作ったBMPで計測しました。
参照した公式ドキュメント
BMPをPNGに変換
BMPは非圧縮の古い形式で、容量が非常に大きくなります。
PNGは可逆圧縮で透明に対応し、ロゴ・スクリーンショット向きですが写真は容量が大きくなります。
ファイルはサーバーにアップロードされず、このブラウザ内だけで処理されます。
画像形式を変換
PNG・JPG・WebPで保存。JPGでは透明背景が合成されます。
使い方
- 画像を開く
- PNG・JPG・WebPから選ぶ
- 変換したファイルを保存
対応形式
PNG / JPG / WebP / AVIF / HEIC → PNG / JPG / WebP — 読み込み・書き出しはブラウザの対応状況によります。 アニメーション入力は非対応です。静止フレームを選択してください。
このツールでできること
拡張子を変えるだけでなく、選んだ形式で再エンコードします。
処理方式と検証状況
advanced · browser image codecs. 品質検証中です。Pro・Flagship水準はまだ実証されていません。
書き出す前に
JPGは透過非対応です。メタデータ・カラープロファイル・アニメーションの保持は保証しません。
よくある質問
透明な背景を残すには?
PNGまたはWebPを選んでください。JPGでは透明部分が指定した背景色になります。
ファイルはアップロードされますか?
このツールで開いたファイルはアップロードせず端末で処理します。コミュニティの投稿に明示的に添付する画像は別途アップロードされます。一部のエンジンやモデルは外部から取得するため、IPアドレスなどの接続情報は配信元に伝わります。
作業は自動保存されますか?
いいえ。画像と編集状態はこのタブに保持され、メディア出力は端末の一時保存を利用する場合があります。言語を変えても作業は残りますが、再読み込み、タブを閉じる操作、別のページへの移動で失われることがあります。