ファイルを渡す
.gif ファイルを選ぶか、ここにドロップします。内容を貼り付けても構いません。
.gifファイルを選ぶと、GIFインスペクターがブロック構造を1バイトずつ読み取ります。バージョン(GIF87aまたはGIF89a)、論理画面記述子(幅、高さ、色解像度、ソートフラグ、グローバルカラーテーブルのサイズ、背景色インデックス、ピクセル縦横比)に加え、フレームごとの矩形、インターレース、ローカルカラーテーブル、LZW最小コードサイズ、センチ秒とミリ秒を並べた遅延、廃棄方法、ユーザー入力フラグ、透過色インデックスをフレーム表で確認できます。NETSCAPE2.0拡張のループ回数(0=無限ループ)、記録された遅延を合計した総再生時間、Latin-1と厳密なUTF-8の両方で読んだコメント・プレーンテキスト拡張、識別子または16進ラベルで示すアプリケーション拡張・不明な拡張、終端バイト0x3Bの有無とその後に続くバイト数も表示します。構造上の問題は警告として示され、結果全体をJSONレポートとしてダウンロードできます。画素は展開せず、ファイルが安全かどうかの判断も行いません。
またはファイルをここにドロップ
.gif ファイルを選ぶか、ここにドロップします。内容を貼り付けても構いません。
ファイルはこのブラウザ内で読み込んで解析します。サーバーには送りません。
出てきた内容を確かめてから、コピーやダウンロードに進みます。
ファイルがどう扱われるか気になりますか? プライバシーについて読む →
.gifファイルを選ぶだけで、フレーム数、総再生時間、各フレームの遅延がすぐに表示されます。フレーム表では遅延をセンチ秒の元の値とミリ秒の換算値で並べ、位置、サイズ、廃棄方法、透過色インデックス、インターレースの有無も示します。総再生時間は記録された遅延をそのまま足した値です。
アップロードは不要で、GIFはブラウザーのタブ内で読み取られ、レポートもその場で作られます。解析のためにファイルをサーバーへ送ることはありません。コメント内にURLが書かれていてもテキストとして表示するだけで、アクセスはしません。
はい、iPhoneやAndroidのブラウザーでもWindows・Macと同じように使え、アプリのインストールは不要です。「ファイル」アプリやダウンロードフォルダーから.gifを選べば同じレポートが得られます。なお、チャットアプリで保存した「GIF」が実はMP4やWebPのことがあり、その場合は「GIFではありません」と表示されます。
先頭3バイトが「GIF」ではなく、拡張子だけが.gifの別形式のファイルだからです。WebP、PNG、MP4、誤って保存したHTMLページなどがよくある例です。判定はファイル名ではなく中身のバイトで行います。先頭がGIFでもバージョンが87a・89a以外なら「未対応のバージョン」、ヘッダーに満たない長さなら「ヘッダーが短すぎる」と表示されます。
ダウンロードやコピーが途中で止まり、GIFの構造が最後まで揃っていない状態です。レポートには停止位置のバイトオフセットまでに読めたフレームがすべて残ります。「フレームの途中でファイルが終わっています」「サブブロック長がファイル末尾を超えています」も同じ種類の破損で、元のファイルを取り直すのが確実です。
上限は30,000,000バイト(約30MB)で、20,000フレームか拡張ブロック100,000個で解析を止めます。画面のフレーム表は先頭5,000フレームまでですが、ダウンロードできるJSONレポートには読み取った全フレームが入ります。コメント本文は合計200,000バイトまで保持し、それを超える分は切り詰めと表示します。
ファイルに記録された値をそのまま表示しているため、0は0ミリ秒のままで総再生時間も補正しません。多くのブラウザーは0や1センチ秒の遅延を約100ミリ秒に引き延ばすので、どちらも数値より遅く再生されることがあります。ただし「遅延0」の警告とブラウザーに関する注記が付くのは記録値がちょうど0のフレームだけで、1センチ秒のフレームは警告なしで10ミリ秒と表示されます。値はいずれも書き換えません。
わかりません。GIFの構造を示すだけで、安全性・真正性・編集の有無・AI生成かどうかは判断せず、マルウェアの検査もしません。終端バイトの後のデータはバイト数を数えるだけで目的は推測せず、不明な拡張は16進ラベルで列挙するだけです。安全性を確かめたいときはウイルス対策ソフトや入手元の確認を使ってください。
GIF89aには遅延・透過・コメント・ループの拡張がありますが、GIF87aにはありません。そのためGIF87aのレポートでは「アニメーション拡張は見つかりませんでした」と示し、既定の遅延やループ回数を勝手に補いません。87aと名乗るファイルに拡張ブロックが含まれていれば、その食い違いを警告します。
NETSCAPE2.0アプリケーション拡張から読んだループ回数を見ます。0なら無限ループ、それ以外は記録された回数です。このブロックがないGIFではループ回数は表示されず、ループ指定がないことを意味します。NETSCAPE2.0のデータブロックが想定の3バイトでなければ不正として警告し、値は空欄にします。3バイトでもサブブロックIDが1以外ならループ指定ではないため、警告は出ませんが値はやはり空欄です。推測で埋めることはありません。
コメント拡張は専用の表に、Latin-1で読んだ文字列、有効な場合のUTF-8の文字列、元のバイト長を並べて表示します。GIFのコメントには文字コードの宣言がないため、どちらが正しい読み方かはご自身で判断できるよう両方を示します。NULなどの制御バイトは\xNNとして見えますが、タブ・改行・復帰(0x09、0x0A、0x0D)はそのまま空白として残ります。HTMLタグも文字のまま表示されます。
できません。GIFを読み取るだけで、書き換え・最適化・再エンコードは一切しません。保存できるのは構造をまとめたJSONレポートだけで、ファイル名は元のGIF名に基づきます。サイズ変更や形式変換には別の変換ツールを使い、このレポートを変換前後の比較に役立ててください。