そのため、このアニメーションをプログラムで作成しましたが、PNGシーケンスとしてのエクスポートをサポートしていないため、GIFに変換できます。アニメーションは100フレームを超えるため、各画像を1つずつ保存するには時間がかかります。ただし、映画フィルムのような「ストリップ」としてのエクスポートはサポートされています。アニメーションの各画像のサイズは同じです。プログラムの「ストリップ」機能の仕組みは次のとおりです。
アニメーションの画像は水平方向に積み重ねられ、最初のフレームが左端、最後のフレームが右端になります。フレーム間にギャップはなく、アニメーションにXフレームがある場合、ファイル名は通常「name_stripX.png」です。各フレームが32x32で、アニメーションに8フレームがある場合、このファイルの幅は256、高さは32になります。
出力例を次に示します。各色が1つのフレームに表示されます。
また、もう少し明確にするために、このプログラムは「GameMaker8.0」と呼ばれています。
承認された回答:
ImageMagickを使用してさまざまな方法で画像を変換できますが、これは非常に簡単にできるはずです。まず、パーツに分割できます(original.png
ソース画像であり、この場合は32x32ピクセルのサイズです):
convert original.png -crop 32x32 parts-%02d.png
次に、それをアニメーションに変換できます(-loop 1
を使用) ループさせたくない場合):
convert -loop 0 -page +0+0 ./parts*.png output.gif
結果:
最初のコマンドの出力PNGにはオフセットが含まれているため、-page +0+0
はありません。 オプションのアニメーションは次のようになります:
-delay
など、(主に2番目のコマンドに)含めることができる他のさまざまなオプションがあります。 など–アニメーションを最適化して、アニメーションを小さく(ロード/レンダリングを高速化)することもできます。例: 借りた ここから:
convert output.gif -fuzz 10% -layers Optimize optimised.gif
またはgifsicleを使用する
gifsicle -O output.gif -o optimised.gif
編集: フレームが透明な場合は、
-dispose Background
を追加することで、置き換えるフレームを設定できます。 オプションなので、次のフレームがロードされたときにフレームが破棄されるとき:
これに伴う問題は、結果の画像をあまり最適化できない可能性があることです。別の方法として、フレームを不透明にして、次のフレームが前のフレームをカバーするようにすることもできます。
関連:電気–切り替えられた常夜灯+コンセントを切り替えられていないコンセントに変換しますか?