首页 > 解决方案 > 使用moviepy将具有透明背景的Gizeh gif添加到现有电影

问题描述

你好,我是 moviepy 和 gizeh 的新手。我想创建一个具有透明背景的 gif 并将这个 gif 添加到电影的左上角。为了创建 gif,我使用了 Gizeh。我的代码是这样剪断的:

import gizeh as gz
import numpy as np
from moviepy.editor import *

videoclip = VideoFileClip("movie.MOV")

W = H = 150
D = 2 #Duration
nballs = 60

radii = np.random.randint(.1*W, .2*W, nballs)
colors = np.random.rand(nballs,3)
centers = np.random.randint(0,W,(nballs,2))

def make_frame(t):
    surface = gz.Surface(W,H)
    for r,color, center in zip(radii, colors, centers):
        angle = 2*np.pi*(t/D*np.sign(color[0]-.5)+color[1])
        xy = center+gz.polar2cart(W/5,angle) # center of the ball
        gradient = gz.ColorGradient(type="radial",
                     stops_colors = [(0,color),(1,color/10)],
                     xy1=[0.3,-0.3], xy2=[0,0], xy3 = [0,1.4])
        ball = gz.circle(r=1, fill=gradient).scale(r).translate(xy)
        ball.draw(surface)
    return surface.get_npimage(transparent=True)

graphics_clip_mask = VideoClip(lambda t: make_frame[t][3] / 255.0, is_mask=True) =====>>>> Error

但是我尝试运行这个片段我得到一个这样的错误:

1 graphics_clip_mask = VideoClip(lambda t: make_frame[t][3] / 255.0, is_mask=True)

TypeError: __init__() got an unexpected keyword argument 'is_mask'

我试图用几种解决方案来解决这个问题,但我无法解决它。如何将此具有透明背景的 gif 添加到现有电影中。

标签: pythonpython-3.xcairomoviepypycairo

解决方案


推荐阅读