GIF Base64 変換ツール

静止画またはアニメーションの GIF を Base64 にエンコードします。元のファイルをバイト単位でそのままエンコードするため、すべてのフレーム、フレームの表示間隔、ループ設定がそのまま保たれます。

すべてブラウザ内で処理され、データはアップロードされません。

使い方

  1. GIF をドロップエリアにドロップするか、クリックして選択するか、画像を貼り付けます。
  2. アニメーションを保つには、「変換形式」を「元の形式のまま」にし、「最大幅」は設定しないでおきます。
  3. 元のサイズとエンコード後のサイズを確認します。アニメーション GIF はすぐにサイズが大きくなります。
  4. img タグや CSS の背景画像の出力をコピーするか、data URI、Base64 文字列のみ、Markdown のいずれかの形式を使います。

GIF 形式について

GIF(Graphics Interchange Format、MIME タイプ image/gif)は 1987 年に登場した形式です。各フレームは最大 256 色のパレットを使い、LZW でロスレス圧縮されます。透過は「完全に透明」か「不透明」かの二択で、パレットの 1 色を透明として指定できますが、半透明は表現できません。1 つのファイルに、それぞれ表示時間を持つ多数のフレームとループ回数を格納できるため、GIF は短いアニメーションの定番形式になりました。

GIF の Base64 は、一般的な GIF89a では R0lGODlh、古い GIF87a では R0lGODdh で始まります。

アニメーションを保つには

元の形式のままにすると、ツールはファイルのバイト列をそのままエンコードします。そのため data URI は、<img> タグで使っても CSS の背景として使っても、元のファイルとまったく同じようにアニメーションします。

PNG、JPEG、WebP に変換したり「最大幅」を設定したりすると、ブラウザ内で画像が描画し直され、最初のフレームだけが残ります。アニメーションの静止画プレビューが欲しい場合には便利ですが、アニメーションのまま使いたい場合はどちらのオプションも使わないでください。

GIF の data URI が今でも有効な場面

  • CSS で使う、小さな読み込み中スピナーやアニメーションするステータスアイコン。
  • プレースホルダーの src として使われる、昔ながらの 1x1 の透明ピクセル。わずか数十バイトで、Base64 でも 100 文字を大きく下回ります。
  • 色数の少ないシンプルな線画。GIF ならコンパクトに収まります。

大きなアニメーションには向きません。2 MB のリアクション GIF は約 2.7 MB のテキストになり、単独ではキャッシュできません。動画ファイルやアニメーション WebP をホストするほうがはるかに軽量です。

.loading {
  background: url("data:image/gif;base64,R0lGODlh...") no-repeat center;
}

<img src="data:image/gif;base64,R0lGODlh..." width="32" height="32" alt="Loading">

よくある質問

Base64 エンコード後も GIF はアニメーションしますか?

はい。元の形式のままにし、リサイズしなければアニメーションします。Base64 には、すべてのフレームとループ設定を含むファイル全体が格納されます。

変換後に GIF が動かなくなったのはなぜですか?

PNG、JPEG、WebP への変換やリサイズを行うと、最初のフレームから画像が描画し直されます。このツールではアニメーション PNG やアニメーション WebP を作成できないため、動きを残すには元の GIF のままにしてください。

GIF の data URI でも透過は保たれますか?
はい。Base64 では透明なパレット色がそのまま保持されます。ただし GIF には半透明がないため、背景色が異なると柔らかい輪郭がギザギザに見えることがあります。なめらかな輪郭には PNG や WebP のほうが適しています。
Base64 文字列から GIF に戻すにはどうすればよいですか?
文字列を Base64 を GIF に変換ツールに貼り付けると、プレビューを確認して .gif ファイルとしてダウンロードできます。