GIFフレームプレーヤー

GIFをアップロードして1フレームずつ再生し、逆方向のプレビュー、遅延時間を確認して、現在の合成フレームをPNGで保存します。

GIFファイルと再生設定

ブラウザ内で処理

再生方向
フレームのタイミング
透明部分のプレビュー背景

現在のフレームとタイムライン

ファイル待ち
読み込み 解析 合成 フレーム確認
GIFが未読込

ファイルを選ぶと、合成フレームとフレームのタイムラインを表示します。

現在のフレーム GIFを選ぶとフレームのタイミングを表示します
論理サイズ
1ループの時間
ループ情報
Disposal方式

GIFファイルを選んで開始してください。

GIFフレームの復元方法

  1. 構造を読むGIFのバージョン、論理キャンバス、パレット、拡張ブロックを確認します。
  2. ピクセルをデコードLZWの規則に従って各画像ブロックの色インデックスを展開します。
  3. 完全なフレームを合成透明色、フレーム位置、disposal方式を使って見えるキャンバスを組み立てます。
  4. 再生を制御元の遅延または均一な遅延でタイムラインを動かし、フレーム移動にも対応します。

詳しく見る

使い方とキーボードショートカット
  • GIFを選ぶかドロップし、ブラウザ内の解析が終わるまで待ちます。
  • 方向、タイミング、タイムライン、フレーム番号で見たいフレームを探します。
  • 現在の合成フレームをPNGで保存するか、フレーム情報をコピーします。

フォームコントロールの外にフォーカスがあるとき、Spaceで再生・一時停止、矢印キーでフレーム移動、Home/Endで最初・最後のフレームへ移動できます。

フレーム遅延とdisposal

GIFは100分の1秒単位で遅延を保存します。宣言された値が0なら表示は0msですが、再生には100msを使います。1〜19msは20msで再生します。

Disposalは次のフレームを描く前に、現在のフレーム領域を残すか、背景へ戻すか、前のキャンバスへ戻すかを指定します。PNGには合成済みの論理キャンバス全体を使います。

形式の制限と例外
  • GIF87aとGIF89aだけを受け付け、APNG、アニメーションWebP、動画は解析しません。
  • 上限は30MB、論理サイズ4096 × 4096ピクセル、1000フレームです。
  • 論理キャンバスのピクセル数とフレーム数の積が2500万を超えると、メモリのリスクを抑えるため処理を停止します。
  • ブラウザ、OS、ディスプレイのリフレッシュレートにより、非常に短い遅延の見え方が少し変わることがあります。
よくある質問
表示される遅延と再生時の遅延が違うのはなぜですか?

GIFは0や非常に短い遅延を宣言できますが、ブラウザは短すぎる間隔を制限することがあります。プレーヤーは元の値と再生に使う値の両方を表示します。

GIFの1フレームを画像として保存するには?

タイムラインまたはフレーム番号欄でフレームを選び、「現在のフレームをPNGで保存」を押してください。ダウンロードされるのは合成済みの論理キャンバス全体です。

アップロードしたGIFはサーバーに送信されますか?

いいえ。ファイルはブラウザのFile APIで読み込み、解析、合成、プレビュー、PNG出力はすべてこの端末内で行います。

プライバシー、方法、出典

このツールはファイルをアップロードせず、実行時の第三者APIを呼び出さず、URLやローカルストレージにも書き込みません。コピーまたはダウンロードを押したときだけクリップボードやローカルファイルを使います。

GIF89aの形式説明に沿って解析し、プレビューとPNG出力にはブラウザのCanvas APIを使います。GIFパーサーとLZWデコーダーは独自実装です。