有两个图像,一个是gif,另一个是png。现在我需要用png图像包装gif图像。我使用ImageMagick
,我认为它可能对我有用。
convert src.png input.gif -gravity Center -composite des.gif;
des.gif
没有动画。左边是des.gif
,右边是input.gif
这是我的测试文件。 https://drive.google.com/drive/folders/0B-64AliLi9OnWVQyLWU3TElHNHM?usp=sharing
答案 0 :(得分:1)
你有77帧。但第一帧比其他所有帧都要小得多。从Imagemagick(6.9.9.13 Q16 Mac OSX Sierra),我可以从
看到这一点identify input.gif
input.gif[0] GIF 216x384 216x384+0+0 8-bit sRGB 256c 3.20786MiB 0.010u 0:00.009
input.gif[1] GIF 1080x1920 216x384+0+0 8-bit sRGB 64c 3.20786MiB 0.010u 0:00.009
...
input.gif[76] GIF 1080x1920 216x384+0+0 8-bit sRGB 64c 3.20786MiB 0.000u 0:00.000
除了第一帧之外的所有帧都接近纯绿色。只有第一个中有一个圆圈。
然而,如果您修复了input.gif,则可以使用以下命令对它们进行合成,以便所有gif帧在背景png上显示动画:
convert image.png null: \( input.gif -coalesce \) -gravity Center -layers composite des.gif
请注意,合并后所有帧都变为216x384。这使得叠加帧太小了。这将使所有框架更大,以便它们适合背景。但是对于第一个来说,仍然都是绿色的。
convert image.png null: \( input.gif -coalesce -resize 1080x1920! \) -gravity Center -layers composite des.gif
参见http://www.imagemagick.org/Usage/anim_mods/#background 如果使用Imagemagick 7,则将转换为magick。