分析と広告のためのCookie
分析と広告のためにCookieを使っており、どちらもGoogleに送られます。拒否しても、目に見える動作は何も変わりません。プライバシーポリシーを読む
GIF を BMP にする変換は、1 コマ目を無圧縮の 24 ビット Windows ビットマップとして書き出します。1 ピクセルにつき 3 バイト、圧縮もパレットもありません。機器や古いプログラムが他の何も受け付けないときに使うもので、すべてブラウザーの中で完結します。
一度に100ファイルまで。フォーマットが混ざっていても構いません。
順番に変換し、まとめてZIPでダウンロードします。
GIF から BMP
GIF 36 KB → BMP 450 KB 12.4 倍
GIF 8 KB → BMP 450 KB 59.9 倍
GIF 6 KB → BMP 450 KB 72.9 倍
この 2 つの形式はほぼ同時代——1987 年と 1990 年——に生まれ、同じ問題を逆方向から解決しています。GIF は最大 256 色のパレットへの索引を保存し、LZW 圧縮で圧縮する前で 1 ピクセルあたり 1 バイトです。ここで書くビットマットは、青・緑・赤の 3 値をすべてのピクセルに、無圧縮で保存します。
ですから膨張は 1 つの要因ではなく、2 つが掛け合わさります。GIF が 1 バイトで済ませていたところを 3 バイトにし、そもそも GIF を小さくしていた LZW の節約も一切残りません。40 KB の GIF がその 10 倍のビットマットになるのは珍しくなく、GIF が最も得意な平らな絵で同じ色が続く素材ほど、比率はさらに悪くなります。
計算は短く、見積もりの余地がありません。幅を 3 倍して 1 行あたりのバイト数を出し、4 の倍数に切り上げ、高さを掛けて、54 バイトのヘッダーを足します。480 かける 270 の GIF なら 1 行 1,440 バイト(端数なし)、ピクセル部分が 388,800 バイト、合計 388,854 バイトです。
元の絵の内容はこの数字を変えません。激しくディザリングされた写真も、真っ赤な四角形も、同じ 480 かける 270 なら同じ大きさのビットマットになります。すべてのピクセルを文字どおり保存するからです。この予測可能性こそ、機器がビットマップを求める理由です。ヘッダーだけを見ればファームウェアはバッファーを確保できます。
ここで書くビットマップの 2 つの慣習は、間違いに見えて間違いではありません。行は画像の下から上へ向かって保存され、各ピクセルのチャンネルの順序は赤緑青ではなく青緑赤です。どちらも元の仕様どおりで、BMP を読むソフトが期待するとおりです。
3 つ目はパディングです。すべての行は 4 バイトの倍数まで詰められるので、幅 101 ピクセルの画像は 303 バイトのピクセルデータのあとに 1 バイトの何もない部分が続き、1 行 304 バイトになります。幅かける 3 を 1 行のバイト数だと決めてかかるコードは、画像が斜めにずれた結果を作ります。これは自作の BMP リーダーでいちばんよくあるバグです。
BMP は 1 枚の絵しか持てません。連続、遅延、ループという概念がなく、ここへ届いたアニメーション GIF は開いたときのコマになり、残りは捨てられます。レジストリはこれを組み合わせの注意事項として明記しており、発見任せにはしていません。
ビットマットを求める行き先にとって、これはめったに問題になりません。BMP を求める機器は定義上、静止画を求めているからです。1 コマ目が欲しいコマかどうかは確認する価値があります。多くの GIF は中身が始まる前に空白やタイトルカードで開きます。
色が 256 色しかない画像なら小さいファイルになるだろうという予想は理にかなっていて、パレット形式なら実際そうなります。ビットマップの仕様自体、色テーブル付きの 8 ビット BMP をまさに許していて、GIF にほぼそのまま対応します。
この変換機はそれを書きません。作り出すすべてのビットマップは 24 ビットなので、6 色しか使わない GIF も同じ寸法の写真とまったく同じバイト数になります。相手の機器が単に BMP を受け付けるだけでなく 8 ビットパレット形式のビットマットを厳密に求めるなら、このファイルでは足りません。機器が拒否してから知るより、変換前に確かめておく価値があります。
GIF はパレットの 1 エントリを透明として指定できます。ここで書くビットマットには、24 ビット、3 チャンネル、余白なしで、アルファチャンネルがまったくありません。だから符号化の前に、それらのピクセルには何らかの値を与える必要があります。
背景色のオプションがその値を決め、既定は白です。機器の上ではこれを意図的に選ぶことが重要です。インターフェースが黒い表示先のアイコンは白ではなく黒に平坦化すべきで、あとで反転するのではありません。システムがクロマキーを期待するなら、後の工程が見つけてくれると期待せず、その色そのものを設定してください。
この変換に画質スライダーはなく、あり得ません。無圧縮は無圧縮で、取引する対象がないからです。唯一のレバーは最大幅で、ピクセルを書く前に絵を縮小するので、ファイルサイズは二乗で変わります。
幅を半分にすればビットマットは 4 分の 1 になります。行き先が小さな表示器ならこれはたいてい正しい選択です。128 ピクセル幅のパネルは 640 ピクセルの元データから何も得るものがなく、ここで縮小しておけば、機器がより大きなバッファーを持つ必要もなくなります。
このサイトのすべてのラスター変換は無条件にメタデータを取り除きますが、この組み合わせではその規則はほとんど何もしていません。GIF に EXIF ブロックはなく、カメラの機種も GPS 座標もありません。多くて、それを書いたソフトが残したコメント拡張とアプリケーション拡張くらいです。
ビットマップ形式にはそもそもそれを置く場所がありません。ヘッダーは寸法とビット深度をほぼ説明するだけです。出てくるのはピクセルと形状だけです。画面録画ソフトがコメントブロックに自分の名前を残していたとしても、その名前は渡りません。
GIF はブラウザー自身の画像対応で復号され、ビットマップのヘッダーとピクセル行は同じタブの中で JavaScript によって書かれます。この経路にサーバーはなく、アップロードも登録もなく、タブを閉じればファイルはなくなります。
これはこの組み合わせでは見た目以上に重要です。BMP に変換される対象はしばしば社内のもの——コントロールパネルの画像、商品ラベル、計測器の起動画面——だからです。ビットマットになるために誰か他人の基盤を通る必要はありません。
| GIF | BMP | |
|---|---|---|
| 正式名称 | Graphics Interchange Format | Windows ビットマップ |
| 拡張子 | .gif | .bmp, .dib |
| メディアタイプ | image/gif | image/bmp |
| 圧縮方式 | 可逆 — 何も捨てない | 無圧縮 |
| 最初の公開 | 1987 | 1987 |
| 発行元 | CompuServe | Microsoft |
| 仕様 | GIF89a | — |
| ライセンス | オープン標準 | 公開仕様、標準化はされていない |
| 現在の位置づけ | 旧式、ただし今もどこでも読める | 旧式、ただし今もどこでも読める |
| ビット深度 | 8 | 8 |
| 扱える色 | インデックスカラー | RGB, インデックスカラー |
| 最大の画像 | 1辺 65,535 px | — |
| ブラウザで開けるか | すべてのブラウザ | すべてのブラウザ |
| 代わりに検討される形式 | WebP, MP4 | PNG, TIFF |
BMP にはアルファチャンネルがありません。透明を含む GIF ファイル から出てくると、その部分は塗りつぶされています——指定がなければ白です——そして BMP 側のどの設定でも、その透明を取り戻すことはできません。
BMP が持てるのは静止した 1 フレームだけです。動く GIF ファイル からは最初のフレームだけが残り、あとは落ちます。この変換はそこから 1 枚の絵を取り出すもので、動きを運ぶものではありません。
GIMPは GIF と BMP のどちらも読めるので、別のプログラムを開かずに、結果を元のファイルと並べて確かめられます。
BMP はサンプルを生のまま持つので、ファイルは大きく膨らみ、その見返りはありません。この向きに意味があるのは、受け取る側のプログラムが GIF を扱えない場合だけで、実際たいていはそれが理由です。
2 つは狙っている用途が違います。GIF はウェブ、BMP はプログラム間のデータ受け渡しです。ここは考える価値があります。一方が存在する理由が、そのままもう一方が使いにくい理由になっていることが多いからです。
GIF は CompuServe の形式です(1987 年に登場)。 記録は 1 チャンネルあたり 8 ビットです。
BMP は Microsoft の形式で、1987 年から使われています。Microsoft Paint、GIMP、IrfanViewがこの形式を読めます。
いいえ。この変換は完全にブラウザーの中で行われるので、ファイルが端末から出ることはありません。ご自分で確かめられます。開発者ツールのネットワークタブを開いて、何か変換してみてください。ページそのものと、このサービスの費用をまかなっている分析・広告のリクエストは見えますが、あなたのファイルを運んでいるリクエストはひとつもありません。
はい。アカウントも透かしもなく、消費される 1 日の割り当てもありません。お使いの機械の上で動くので、何度でも戻ってきていただけます。ブラウザーが扱えるのは 100 MB までのファイルで、一度に 100 本です。
BMP は圧縮するので、データはいくらか失われます。初期設定では気づかない程度ですが、確実にしたい場合は品質を上げてください。 変換されるのは最初の 1 フレームだけです。動く GIF は静止画になります。
BMP にはアルファチャンネルがありません。透明を含む GIF ファイル から出てくると、その部分は塗りつぶされています——指定がなければ白です——そして BMP 側のどの設定でも、その透明を取り戻すことはできません。
BMP が持てるのは静止した 1 フレームだけです。動く GIF ファイル からは最初のフレームだけが残り、あとは落ちます。この変換はそこから 1 枚の絵を取り出すもので、動きを運ぶものではありません。
BMP はサンプルを生のまま持つので、ファイルは大きく膨らみ、その見返りはありません。この向きに意味があるのは、受け取る側のプログラムが GIF を扱えない場合だけで、実際たいていはそれが理由です。
このページがGIFとBMPについて述べていることは検証できます。根拠となる資料は次のとおりです。