web-dev-qa-db-ja.com

フレームごとに256色以上のアニメーションGIFを作成できますか?

フレームごとに256色以上のアニメーションGIFを作成できますか?アニメーションGIFを実行したいのですが、限られたカラーパレットによってゴミのように見えます。

29
Mark Henderson

はい、できますが、特定の制限があります。

Rainbow from boxes

GIFは、フレームごとの(ローカル)パレットをサポートし、複数のフレームを結合できる「そのままの」フレーム破棄方法を備えています。

この手法を使用してGIFエンコーダー "gifski" を作成しました。フレームごとに約1000〜3000色のアニメーションを生成します。

キャッチは、画像のすべてのピクセルがフレーム間で変化しない場合にのみ、これを利用できるということです。したがって、静止した背景の前で何かが動いている場合、256色以上のアニメーションを作成できます。移動するオブジェクトは256色に制限されますが、背景は異なるパレットを持つ複数のフレームで構成できます。巧妙なディザリングにより、動くオブジェクトのピクセルを再利用することさえ可能です。

gifski

40
Kornel

いいえ、できません。 GIF形式では256色しか使用できません。

4
delete

GIFファイルは256色に制限されていません。

2

少なくとも理論的には、gifを積み重ねて、余分な色を透明にすることができます。

  1. 最初に、各フレームをコピーして、各フレームが2つになるようにします。
  2. 次に、画像の半分が選択されるように、感度が十分低い色で領域を選択します。
  3. 次に、選択範囲内のすべてを消去します。
  4. 選択範囲を反転します。
  5. 次に、次のフレームに進みます。
  6. そして、すべてをもう一度消去します。
  7. 最終結果を保存します。 raw-ani.gif
  8. フレームの半分を削除します。
  9. 新しいファイル名で保存します。 ani1.gif
  10. 以前に保存したバージョンをロードします。
  11. フレームの残りの半分を削除します。
  12. もう一度保存します。 ani2.gif

絶対配置でHTMLをハックし、ani2.gifの上にani1.gifを配置します。

このプロセスを繰り返して、必要な4つのレイヤー(8、16)を作成します。

raw-ani.gifの結果を高速化し、Kornelが説明したこともできます。

2
gaby de wilde

トゥルーカラーgifを使用することは可能ですし、オンラインでさまざまな記事がありますが、それらはあまり実用的ではありません。

1
John