画像のトリミングに関する情報はたくさんありますが、アニメーションをトリミング (またはトリミング) しようとすると、奇妙な結果が生じます。ちらつきや余分なフレームが発生したり、一部のフレームが正しくトリミングされたり、他のフレームがオフセットされたりすることがあります。このすべてが起こらないようにするにはどうすればよいですか?
質問する
23393 次
4 に答える
90
convert input.gif -coalesce -repage 0x0 -crop WxH+X+Y +repage output.gif
- アニメーション GIF は多くの場合、スペースを節約するために最適化されていますが、imagemagick はクロップ コマンドを適用するときにこれを考慮していないようで、各フレームを個別に扱います。
-coalesce
フレーム全体を再構築します。 - 他のコマンドは、元の gif で提供されたオフセット情報を考慮に入れるため、 で強制的にリセットする必要があります
-repage 0x0
。 - トリミング自体は簡単で、幅、高さ、x オフセット、y オフセットがそれぞれ提供されます。たとえば、x オフセット 50 = 40x30+50+0 で幅 40、高さ 30 のクロップを作成します。
- トリミングは、画像から切り取ったキャンバスを削除しません。
+repage
収穫後に適用すると、これが行われます。
于 2012-12-26T06:28:01.933 に答える
43
合体と再ページ化を行っても、ImageMagick でアニメーション GIF をうまくトリミングおよびサイズ変更できませんでした。
私はGifsicleというプログラムを見つけました。これは、アニメーション GIF を操作するのに最適です。
gifsicle --crop 0,0-100,100 --output out.gif in.gif
また、他のあらゆる種類の操作を実行できます。見てみな!
于 2013-11-13T23:00:48.577 に答える
3
アニメーションはしばしば最適化されます。つまり、一部のフレームは他のフレームよりも小さくなります。したがって、ImageMagick では、トリミングする前にアニメーションを合体させたいと思うでしょう。
convert in_animation.gif -coalesce -crop WxH+X+Y +repage -layers optimize out_animation.gif
ちらつきを避けるために、入力アニメーションを読み取る前に -dispose メソッドを追加する必要がある場合があります。変更する場合は、最後に -delay と -loop も設定します。
見る
http://www.imagemagick.org/Usage/anim_basics/#dispose http://www.imagemagick.org/Usage/anim_basics/#coalesce http://www.imagemagick.org/script/command-line-options. php#レイヤー
于 2018-05-15T22:37:59.337 に答える