gpt4 book ai didi

image-processing - 如何修剪动画 gif(使用 imagemagick)?

转载 作者:行者123 更新时间:2023-12-01 09:47:58 25 4
gpt4 key购买 nike

给定一个纯色背景上的动画 gif

animated bunny with padding

我想修剪 内边距。具体来说,我想在所有帧上将图像裁剪到前景对象的最大范围:

animated bunny without padding

我似乎找不到 -alpha-background 的正确组合来通过单个 convert 命令实现此目的。例如,如果我发出

convert -dispose 2 input.gif -trim -layers TrimBounds fail.gif

对于那些单个修剪范围小于所有帧的最大范围的帧,我会得到随机的“背景”颜色:

animated bunny with bad background colors

我可以用一长串命令实现正确的输出:

convert input.gif -trim -layers TrimBounds out-%03d.miff
mogrify -background "rgb(20%,30%,80%)" -layers flatten out-*.miff
convert out-*.miff output.gif
rm out-*.miff

这很慢,写了一堆临时文件,并且需要我明确知道背景颜色("rgb(20%,30%,80%)")。

有没有更简单的方法来修剪动画 gif?

这个 related question考虑显式裁剪而不是自动修剪。

最佳答案

最后,这似乎可以在 ImageMagick 中使用一行来获取背景颜色和一行处理。不需要临时文件。

bgcolor=`convert input.gif[0] -format "%[pixel:u.p{0,0}]" info:`
convert -dispose previous -delay 10 -background "$bgcolor" input.gif -trim -layers TrimBounds -coalesce -layers optimize -loop 0 output.gif

enter image description here

关于image-processing - 如何修剪动画 gif(使用 imagemagick)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44555789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com