ImageMagick Linux 模仿 ezgif.com 结果
ImageMagick Linux mimick ezgif.com result
Ezgif.com 是一个很棒的页面,但是 ImageMagick 可以得到相同的结果吗?
Ezgif settings:
Delay: 200 per image
Crossfade frames
Fader delay: 6
Frame Count: 10
我通过 Linux 终端的尝试:
convert -delay 200 -loop 0 *.jpg myimage.gif
这是 Unix shell 脚本,用于创建 4 个图像的褪色动画,每个图像有 10 个中间淡入淡出。它遍历每一对连续的图像,并通过以不同的百分比混合这对图像来创建褪色的中间图像。
输入:
(
imgArr=(lena.jpg mandril3.jpg zelda1.jpg peppers.jpg)
for ((i=0; i<4; i++)); do
img1=${imgArr[$i]}
j=$((i+1))
jj=$((j%4))
img2=${imgArr[$jj]}
for ((k=0; k<11; k++)); do
pct=$((10*k))
convert $img1 $img2 -define compose:args=$pct -compose blend -composite miff:-
done
done
) | convert -delay 20 - -loop 0 anim.gif
动画:
请注意,我必须将图片缩小到 75% 的尺寸,以使文件大小足够小以上传到此处。
正如我在 FL 上告诉你的,你只需使用
convert -resize (Smallest size) -delay 200 -morph 200 (source) (destination)
例如:
convert -resize 200x200 -delay 200 -morph 200 /var/home/user1/pictures/*.jpg /var/home/user1/myresult.gif
在我这边,我可以向您展示在 WINDOWS
上使用的结果
在 Windows 图片文件夹中
使用此命令:
C:\Users\Public\Pictures\Sample Pictures>convert -resize 20% -delay 20 -loop 0 *.jpg -morph 5 myimage.gif
一个完整的单线解决方案,增加了主框架的延迟和从最后到第一个转换,具有相同的设置 OP 要求:
convert -loop 0 *.jpg -morph 10 -set delay '%[fx:(t%11!=0)?6:200]' -duplicate 1,-2-1 out.gif
-morph 10
在每个原始帧之间插入10个中间帧,所以我们需要每第11帧增加延迟时间,所以fx
部分设置了不同的延迟时间他们。
-duplicate 1,-2-1
从最后一帧过渡到第一帧
Ezgif.com 是一个很棒的页面,但是 ImageMagick 可以得到相同的结果吗?
Ezgif settings:
Delay: 200 per image
Crossfade frames
Fader delay: 6
Frame Count: 10
我通过 Linux 终端的尝试:
convert -delay 200 -loop 0 *.jpg myimage.gif
这是 Unix shell 脚本,用于创建 4 个图像的褪色动画,每个图像有 10 个中间淡入淡出。它遍历每一对连续的图像,并通过以不同的百分比混合这对图像来创建褪色的中间图像。
输入:
(
imgArr=(lena.jpg mandril3.jpg zelda1.jpg peppers.jpg)
for ((i=0; i<4; i++)); do
img1=${imgArr[$i]}
j=$((i+1))
jj=$((j%4))
img2=${imgArr[$jj]}
for ((k=0; k<11; k++)); do
pct=$((10*k))
convert $img1 $img2 -define compose:args=$pct -compose blend -composite miff:-
done
done
) | convert -delay 20 - -loop 0 anim.gif
动画:
请注意,我必须将图片缩小到 75% 的尺寸,以使文件大小足够小以上传到此处。
正如我在 FL 上告诉你的,你只需使用
convert -resize (Smallest size) -delay 200 -morph 200 (source) (destination)
例如:
convert -resize 200x200 -delay 200 -morph 200 /var/home/user1/pictures/*.jpg /var/home/user1/myresult.gif
在我这边,我可以向您展示在 WINDOWS
上使用的结果在 Windows 图片文件夹中 使用此命令:
C:\Users\Public\Pictures\Sample Pictures>convert -resize 20% -delay 20 -loop 0 *.jpg -morph 5 myimage.gif
一个完整的单线解决方案,增加了主框架的延迟和从最后到第一个转换,具有相同的设置 OP 要求:
convert -loop 0 *.jpg -morph 10 -set delay '%[fx:(t%11!=0)?6:200]' -duplicate 1,-2-1 out.gif
-morph 10
在每个原始帧之间插入10个中间帧,所以我们需要每第11帧增加延迟时间,所以fx
部分设置了不同的延迟时间他们。
-duplicate 1,-2-1
从最后一帧过渡到第一帧