私の現在の問題では、特定のアニメーションを数回実行し、最後に別のアニメーションを実行する数百のアニメーション GIF があります。つまり、GIF は 3 回ほどループし、4 回目はループする代わりに別のアニメーションを実行します。これらのループはすべて、.gif ファイルのレイヤーにハードコードされているだけです。
私の目標は、最初のループを決定し、アニメーションを 10 フレームに縮小することです。私は、Pythonを使用して、最初のフレームが後のフレームと等しいときを見つけることができると考えています(それにより、最初の完全なシーケンスとフレーム数を見つけます)。これで、アニメーションにかかるフレーム数がわかりました。この数は、作業している数百の異なる画像間で変化します。したがって、1 つの画像の場合、最初のループは 20 フレームほどで完了し、別のループはおそらく 25 フレームで完了します。75 フレームほどかかるものもあります (非常に遅い画像であるため)。
私の質問は、これらの数値 (20、25、75、... または最初のループが何であれ) を使用して、これを 10 だけに最適に変換するにはどうすればよいかということです。生成する方法を理解する必要があります
20 -> 20/10 = 2 Resulting sequence: [0, 20) step 2
25 -> 25/10 = 2.5 Sequenece: [0, 25).... Step ?? should alternate between 2 and 3 somehow
75 -> 75/10 = 7.5 Sequenece: [0, 75).... Step ?? should alternate between 7 and 8 somehow
私の解決策は、bashスクリプトまたはpython、またはbashシェルから使用できるものであれば何でもかまいません。