如何使用ImageMagick裁剪animationgif?

有大量关于裁剪图像的信息,但尝试裁剪(或修剪)animation会产生奇怪的结果。 有时它们会闪烁,或者出现多余的帧,或者某些帧会正确裁剪,而其他帧则会偏移。 我如何防止这一切发生?

convert input.gif -coalesce -repage 0x0 -crop WxH+X+Y +repage output.gif 
  • animationgif经常进行优化,以节省空间,但imagemagick似乎并没有考虑到这一点,当应用裁剪命令,并单独处理每个帧。 -coalesce重build完整的帧。
  • 其他命令将考虑到原始gif中提供的偏移量信息,因此您需要强制使用-repage 0x0进行重置。
  • 作物本身很简单,分别提供宽度,高度,x偏移量和y偏移量。 例如,在50 = 40×30 + 50 + 0的x偏移处,作物40宽30高。
  • 裁剪不会删除从图像剪切的canvas。 在作物完成之后应用+repage将会做到这一点。

即使合并和重新编译,我也无法让ImageMagick非常好地裁剪和调整GIFanimation。

我find了一个名为Gifsicle的程序,它可以很好的处理GIFanimation。

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

它也可以做各种其他的操作。 一探究竟!