実測ガイド · 2026年8月28日

GIFのファイルサイズを小さくする方法

圧縮だけが方法ではありません。4つの自作GIFについて32の状態を記録・検証し、リサイズ、トリミング、減色、フレーム削減の違いを比較しました。

先に結論

画質を落とす前に、不要なピクセルを減らす。

GIFを実際には小さく表示するなら、リサイズは比較的予測しやすい方法です。周囲に不要な余白があれば先にトリミングします。解像度低下、フレーム削減、質感の劣化を許容できる場合だけ圧縮を強くしてください。すでに効率的なサンプルではLightの削減量はほぼゼロでした。プリセットだけで必ず容量が減るとは限りません。

01 · 選び方

絶対に守りたい条件から選ぶ

最も重要な条件を先に決めます。最適な方法は、不要なデータだけを減らす方法です。

幅・高さ・タイミングを維持

軽い再エンコードを試す

見た目の大きさは維持できますが、元GIFが効率的なら削減量が少ない、またはゼロの場合があります。

Light圧縮を試す →
小さく表示する

画像サイズを縮小する

幅と高さを50%にすると、4サンプルでフレーム数と再生時間を保ったまま52.2%〜65.7%削減できました。

GIFをリサイズ →
被写体の周囲に不要な余白

圧縮前にトリミングする

不要な端だけを切り取ります。削除領域の複雑さにより削減率は11.3%〜41.0%でした。

GIFをトリミング →
最大限の削減を優先

解像度と滑らかさを調整する

Strongは65.8%〜69.7%削減しましたが、画像寸法も縮小し、フレーム数を半分にしました。

圧縮レベルを比較 →
02 · 容量を左右する要素

GIFのファイルサイズが大きくなる理由

画像の面積

各フレームにはピクセルの格子があります。幅と高さを50%にすると、1フレーム全体のピクセル位置は4分の1になります。

フレーム数

フレームが多いほど動きは滑らかになりますが、各フレームの画像データとタイミング情報が増えます。

見た目の複雑さ

質感、グラデーション、ノイズ、大きく動く領域は、単純で繰り返しの多い形よりも圧縮しにくくなります。

カラーパレット

GIFはインデックスカラーを使います。色数を減らすと容量は下がりますが、写真では階調の段差やディザが目立つことがあります。

変化する領域

毎フレームで多くのピクセルが変わるアニメーションは、小さな要素だけが動くものより多くのデータを必要とします。

03 · 同じ素材、異なるトレードオフ

Strongで何が変わったか

各ペアは同じ元アニメーションを使っています。カード上の表示サイズはそろえているため、実際の寸法とフレーム数はラベルで確認してください。

GIF-UIフラットなUIモーション

単純な形、少ない色、動くインターフェース要素。

UIテストアニメーションの元GIF元GIF · 116.32 KB · 800×450 · 40 フレーム
Strong圧縮後のUIアニメーションStrong · 39.38 KB · 560×315 · 20 フレーム
GIF-PHOTO質感のある写真モーション

グラデーション、再現可能な質感、動く前景オブジェクト。

写真テストアニメーションの元GIF元GIF · 2.13 MB · 640×360 · 50 フレーム
Strong圧縮後の写真アニメーションStrong · 659.52 KB · 448×252 · 25 フレーム
GIF-STICKER透明ステッカー

透明背景とくっきりした輪郭を持つ動くステッカー。

透明ステッカーの元アニメーション元GIF · 54.18 KB · 512×512 · 30 フレーム
Strong圧縮後の透明ステッカーStrong · 18.54 KB · 358×358 · 15 フレーム
GIF-TEXT文字と線のモーション

細い線、文書風の文字列、動くカーソル。

文字と線の元アニメーション元GIF · 181.85 KB · 960×540 · 60 フレーム
Strong圧縮後の文字アニメーションStrong · 61.38 KB · 672×378 · 30 フレーム
04 · 全検証結果

記録・検証した32の状態

削減率は各出力をそれぞれの元GIFと比較した値です。この固定テストセットの結果であり、すべてのGIFに同じ割合を保証するものではありません。

サンプル方法設定ファイルサイズ削減率寸法フレーム
GIF-UI元GIF元GIF116.32 KB—800×45040
GIF-UI圧縮Light116.32 KB0.0%800×45040
GIF-UI圧縮Balanced97.45 KB16.2%680×38340
GIF-UI圧縮Strong39.38 KB66.2%560×31520
GIF-UIリサイズ75%84.72 KB27.2%600×33840
GIF-UIリサイズ50%55.24 KB52.5%400×22540
GIF-UIトリミング各辺10%101.68 KB12.6%640×36040
GIF-UI組み合わせトリミング → 50% → Balanced40.79 KB64.9%272×15340
GIF-PHOTO元GIF元GIF2.13 MB—640×36050
GIF-PHOTO圧縮Light2.13 MB0.0%640×36050
GIF-PHOTO圧縮Balanced2.06 MB3.1%544×30650
GIF-PHOTO圧縮Strong659.52 KB69.7%448×25225
GIF-PHOTOリサイズ75%1.73 MB18.4%480×27050
GIF-PHOTOリサイズ50%746.56 KB65.7%320×18050
GIF-PHOTOトリミング各辺10%1.42 MB33.3%512×28850
GIF-PHOTO組み合わせトリミング → 50% → Balanced396.92 KB81.8%218×12250
GIF-STICKER元GIF元GIF54.18 KB—512×51230
GIF-STICKER圧縮Light54.18 KB0.0%512×51230
GIF-STICKER圧縮Balanced45.62 KB15.8%435×43530
GIF-STICKER圧縮Strong18.54 KB65.8%358×35815
GIF-STICKERリサイズ75%39.94 KB26.3%384×38430
GIF-STICKERリサイズ50%25.92 KB52.2%256×25630
GIF-STICKERトリミング各辺10%48.07 KB11.3%410×41030
GIF-STICKER組み合わせトリミング → 50% → Balanced19.64 KB63.7%174×17430
GIF-TEXT元GIF元GIF181.85 KB—960×54060
GIF-TEXT圧縮Light181.85 KB0.0%960×54060
GIF-TEXT圧縮Balanced150.18 KB17.4%816×45960
GIF-TEXT圧縮Strong61.38 KB66.2%672×37830
GIF-TEXTリサイズ75%132.23 KB27.3%720×40560
GIF-TEXTリサイズ50%85.76 KB52.8%480×27060
GIF-TEXTトリミング各辺10%107.23 KB41.0%768×43260
GIF-TEXT組み合わせトリミング → 50% → Balanced43.45 KB76.1%326×18460

検証方法: プロジェクト所有の4つのGIFを現在のTanumi GIF workerで処理しました。全出力をffprobeで個別にデコードしています。Lightは寸法とフレーム数を維持し、元GIFとのSSIMは0.999999〜1.0でした。形状が変わる出力は、想定表示サイズで目視確認しました。

05 · 実用的な順序

トリミング → リサイズ → 圧縮

複数の変更を許容できる場合は、影響の少ないものから行います。

  1. 01

    不要な端だけを取り除く

    削減率のために重要な動きを切らないでください。トリミングは周囲が本当に未使用の場合に有効です。

  2. 02

    実際の表示寸法に合わせる

    幅960ピクセルのGIFを480ピクセルで表示するなら、見えない細部にもデータを使っています。

  3. 03

    許容できる最も弱い圧縮を選ぶ

    細い文字、グラデーション、動き、透明な端を確認します。まだ上限を超える場合だけStrongへ進みます。

次の操作を選ぶ

失ってもよいものだけを変える。

GIFを圧縮Light・Balanced・Strongを比較 →GIFをリサイズ実際の表示サイズに合わせる →GIFをトリミング不要なキャンバス端を削除 →