出于愚蠢的计时原因,我需要一个延迟为6的gif。A,我的材料是延迟20。
我真正需要的是将延迟降低到6,同时将每帧乘以三到四次。我不介意时机稍差。
这似乎是一个很简单的问题,但完全无法解决。
答案 0 :(得分:2)
您可以这样做:
#!/bin/bash
# Split animation into constituent frames, saving as "frame-nnn.gif"
convert animated.gif -coalesce frame-%03d.gif
# Make array of all framenames
frames=( frame-*gif )
# Triplicate array elements
for ((i=0;i<${#frames[@]};i++)); do newframes+="${frames[i]} ${frames[i]} ${frames[i]} "; done
# DEBUG echo ${newframes[@]}
# Rebuild animation with new speed
convert -delay 10 ${newframes[@]} new.gif
# Clean up
rm frame-*.gif 2> /dev/null
我的脚本假设您的原著叫animated.gif
,结果叫new.gif
。显然,您可以根据需要更改延迟和重复次数,我选择的值只是说明性的。