如何通过python制作图像序列的抽奖动画?

时间:2020-06-24 07:35:31

标签: python lottie

我正在尝试在python中使用抽奖框架制作动画。我制作的脚本只能显示一张图像。我不知道如何在python的抽奖框架中为图像序列设置动画。任何帮助将不胜感激。

from lottie.utils import script
from lottie import objects
from lottie import Point, Color
import os



image_filename1 = os.path.dirname(os.path.realpath(__file__))+'/images1/pngImages'+'/'+'2020-05-01'+"_new.png"


last_frame = 60
an = objects.Animation(last_frame, 1)

an.width = 720
an.height = 360
image1 = objects.assets.Image().load(image_filename1)
an.assets.append(image1)

an.add_layer(objects.ImageLayer(image1.id))

script.script_main(an, path="/Users/ihasan/", basename='sample2', formats=['html'])

1 个答案:

答案 0 :(得分:0)

在搜索lottie-python示例脚本here之后,我找到了一种对图像序列进行动画处理的方法。我在这里共享的代码由两个图像组成。可以使用带有更多图像的循环进行简化。

from lottie.utils import script
from lottie import objects
from lottie import Point, Color
import os

image_filename1 = "/../" # image1 directory
image_filename2 = "/../" # image2 directory


image1 = objects.assets.Image().load(image_filename1)
image2 = objects.assets.Image().load(image_filename2)

lastFrame = 60
an = objects.Animation(lastFrame)
an.width = 720
an.height = 360

an.assets.append(image1)
an.assets.append(image2)

precomp = objects.Precomp("myid", an)
layer1 = objects.ImageLayer(image1.id)

layer1.out_point = 20

precomp.add_layer(layer1)

pcl0 = an.add_layer(objects.PreCompLayer("myid"))
pcl0.width = 720
pcl0.height = 360

pcl0.start_time = 0

layer2 = objects.ImageLayer(image2.id)
layer2.out_point = 40
precomp.add_layer(layer2)

pcl1 = an.add_layer(objects.PreCompLayer("myid"))
pcl1.start_time = 20
pcl1.width = 720
pcl0.height = 360

script.script_main(an, path="../../", basename='samplePrecomp', formats=['json'])