2012-12-26 12 views
46

画像のトリミングに関する情報はたくさんありますが、アニメーションのトリミング(トリム)を試みると奇妙な結果が生じます。時にはそれらがちらつき、余分なフレームが付いてきたり、一部のフレームが正しく切り取られたり、他のフレームがずれたりすることがあります。これをすべて防ぐにはどうすればいいですか?ImageMagickを使用してアニメーションgifをトリミングするにはどうすればよいですか?

答えて

60
convert input.gif -coalesce -repage 0x0 -crop WxH+X+Y +repage output.gif 
  • アニメーションGIFが、多くの場合、スペースを節約するために最適化されていますが、ImageMagickには個別作物のコマンドやお菓子、各フレームを適用する場合、これを考慮していないようです。 -coalesceはフルフレームを再構築します。
  • 他のコマンドは元のgifで提供されたオフセット情報を考慮に入れますので、強制的にリセットする必要があります。-repage 0x0
  • 作物自体は、幅、高さ、xオフセット、yオフセットがそれぞれ供給され、簡単です。たとえば、40ワイド、50のオフセットが50 = 40x30 + 50 + 0の30の高さの作物。
  • 画像から切り取ったキャンバスは切り取られません。作物の後に+repageを適用するとこれが行われます。
+0

このコマンドは、output.gifのように1つのファイルではなく、-0、-1、-2などのファイルを追加して出力します。 –

+0

私にとってはうまく動作します。とても有難い! – musiKk

+0

'+ repage'は本当にありがとう! ImageMagickは何らかの理由でアニメーション化された.gifファイルをキャンバスに残すだけでした(.pngや.jpegでは起こりませんでした)。 –

29

ImageMagickでアニメーション化されたgifをトリミングしてサイズ変更することができませんでした。

私はGifsicleというプログラムを見つけました。これはアニメーションGIFを操作するのに最適です。

gifsicle --crop 0,0-100,100 --output out.gif in.gif 

その他の操作もできます。見てみな!

+0

+1はImageMagickをインストールしないためです。 – bloudermilk

+0

これはファイルサイズを小さくするのに役立ちました。 ImageMagickは、私のユースケースでは3.7倍のサイズを爆破しました。 –

+1

最初の2つの数字は左上の座標です(ピクセル単位)。他の2つの数字は切り抜く領域の右下の座標です。 – Mijo

関連する問題