有很多关于裁剪图像的信息,但尝试裁剪(或修剪)动画会产生奇怪的结果。有时它们会闪烁,或者带有额外的帧,或者某些帧正确裁剪而其他帧偏移。我如何防止这一切发生?
问问题
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 回答
2
于 2018-05-15T19:36:39.413 回答