BMPをPNGに変換
BMPはすべてのピクセルを生のまま保存します。PNGなら同じピクセルをロスレスで、ごく一部のサイズで保存できます。同じ画像を今どきの形式に。ファイルは保存されません。
- 保存しません
- 順番待ちなし
- 登録不要・透かしなし
使い方
BMPを追加
.bmpファイルをいくつでもページにドロップします。
変換
各ファイルがロスレス圧縮のPNGになります。ピクセルは同じまま、ファイルはずっと小さくなります。
ダウンロード
1つずつ、またはZIPで保存できます。
同じピクセルを、ごく一部のサイズで
BMPは通常、まったく圧縮されていません。すべてのピクセルが1つあたり3〜4バイトでそのまま書き込まれ、各行は4バイト単位に揃えるための詰め物が入ります。そのため1920×1080のスクリーンショットは約8 MB、1200万画素の写真は36 MB近くになります。PNGはまったく同じピクセルをロスレスで圧縮して保存するので、画像は何も変わらず、ファイルは一般的に5〜20分の1になります。平坦な部分が多いスクリーンショットや図なら、その比率は上限に近くなります。トレードオフがまったくない、珍しい変換です。
結果について確認しておきたい点が1つあります。32ビットBMPの透過は当てになりません。これはここでの処理のせいではありません。 もともとのWindowsビットマップのヘッダーにはアルファチャンネルという概念がなく、各ピクセルの4バイト目は単に使われていませんでした。後のヘッダーで正式に定義されましたが、今でも古い形式で書き出すソフトは多く、新しい形式を無視するデコーダーも多くあります。そのため、作成したソフトでは透明に見えるBMPが、アルファのバイトを詰め物として読まれて不透明にデコードされることがあります。透過が重要なら、PNGを使う前に確認してください。
もう1つの癖は行の順番です。BMPは慣例として行を下から上の順に保存します。これは初期のグラフィックハードウェアのメモリの扱い方を受け継いだもので、上から下の順のファイルは高さを負の値にして示します。デコーダーはどちらも扱えるので、実際には気づくことはありません。書きかけのBMPや途中で切れたBMPが、途中で切れるのではなく上下逆に表示されるのは、これが理由です。
一般的なWindowsのBMPはすべて変換できます。この形式の特殊な部分、つまりRLE圧縮の4ビット・8ビットのビットマップ、90年代初頭のOS/2ヘッダー、まれなJPEG埋め込み形式は、デコーダー次第です。そのどれかが受け付けられない場合は、崩れた画像を出力するのではなく、その旨が表示されます。
ほかの目的には
PNGをさらに小さくするなら、oxipng -o 4 out.png や optipng で、ピクセルを1つも変えずにさらに10〜30%小さくなることがよくあります。pngquantはパレットに減色することでさらに大幅に小さくします。これは非可逆ですが、スクリーンショットや図ならたいてい見た目に違いは出ません。
フォルダー単位で変換するなら、ImageMagickの magick mogrify -format png *.bmp で1行ですべて変換でき、libvipsなら非常に大きな画像でも、わずかなメモリで同じ処理ができます。BMPが図ではなく写真なら、そもそもPNGは適した変換先ではありません。JPGなら、誰にも見分けられない画質の差で、サイズは10分の1になります。
よくある質問
画質は落ちますか?
まったく落ちません。PNGはロスレスです。PNGをデコードすると、BMPが持っていたのとまったく同じピクセルになり、無駄なデータだけがなくなります。
どれくらい小さくなりますか?
内容によりますが、一般的に50〜95%小さくなります。BMPは実質的に非圧縮なので、ほぼどんな形式にしても小さくなります。
今どきBMPはどこから来るのですか?
古いツールで撮ったWindowsのスクリーンショット、ペイント、科学機器、組み込みシステム、レガシーソフトなどです。この形式はWindows 3.0の時代にさかのぼります。
ファイルはどこかに保存されますか?
いいえ。変換処理は何も保存しません。
PNGはBMPが持てるものをすべて持てますか?
はい、それ以上です。PNGは本物の透過に対応していますが、BMPは実質的に透過を持つことがありませんでした。
ご注意: 特殊なBMP(RLE圧縮、OS/2ヘッダー)は、お使いのブラウザのデコーダーによって扱えるかが決まります。一般的なWindowsのBMPはすべて変換できます。
このツールをあなたのサイトに設置
ブログ、授業のページ、ヘルプ記事などに無料で設置できます。コードを1つ貼り付けるだけで、訪問者がそのページ上でツールを使えるようになります。