2012-12-26 79 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偏移量。例如,在50 = 40x30 + 50 + 0的x偏移量下裁剪40宽和30高。
  • 裁切不会删除它从图像中剪切的画布。作物完成后应用+repage
+0

该命令输出一个单独的文件序列与-0,-1,-2等附加,而不是一个单一的文件,如output.gif –

+0

适合我工作。非常感激! – musiKk

+0

'+ repage'真的对我来说有什么用,谢谢!由于某种原因,ImageMagick只能离开画布获取动画.gifs(没有发生.png或.jpegs)。 –

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

相关问题