76

画像のトリミングに関する情報はたくさんありますが、アニメーションをトリミング (またはトリミング) しようとすると、奇妙な結果が生じます。ちらつきや余分なフレームが発生したり、一部のフレームが正しくトリミングされたり、他のフレームがオフセットされたりすることがあります。このすべてが起こらないようにするにはどうすればよいですか?

4

4 に答える 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 に答える