簡體   English   中英

使用Python Gizeh構建動畫

[英]Building an animation using Python Gizeh

我能夠創建一個包含形狀和數字的簡單圖表。 我使用以下代碼:

import gizeh as gz

W, H = 500, 300

surface = gz.Surface(W,H, bg_color=(1,0.7,1))

for a in range(1,9):
    rect = gz.rectangle(lx = 10, ly = 10, xy=(W/a,H/a), fill =(0,1,0.7))
    rect.draw(surface)
    txt = gz.text(str(a), fontfamily="Dancing Script", fontsize=15, fill=(0,0,0),xy=(W/a,H/a))
    txt.draw(surface)

surface.ipython_display()

我還使用moviepy創建了一個版本:

import numpy as np
import gizeh as gz
import moviepy.editor as mpy

W, H = 500, 300
duration = 5
figpath = '/tmp/'
fps = 1

def make_frame(t):

    surface = gz.Surface(W,H, bg_color=(1,1,1))

    rect = gz.rectangle(lx = 10, ly = 10, xy=(W/(t+1),H/2), fill =(0,1,0.7))
    rect.draw(surface)
    txt = gz.text(str(t+1), fontfamily="Dancing Script", fontsize=15, fill=(0,0,0),xy=(W/(t+1),H/2))
    txt.draw(surface)

    return surface.get_npimage()

clip = mpy.VideoClip(make_frame, duration=duration)
clip.write_videofile(figpath + 'trax_0.mp4', fps=fps)

clip.ipython_display(fps=fps, width=W, autoplay=0, loop=0)

我希望能夠使用循環的每個步驟之間的時間延遲來創建動畫GIF。

嘗試使用MoviePy - Gizeh作者的模塊。
看一篇好文章,其中吉薩和MoviePy用於動畫: http://zulko.github.io/blog/2014/09/20/vector-animations-with-python/

#!/usr/bin/env python3

import numpy as np
import gizeh as gz
import moviepy.editor as mpy

W,H = 128,128 # 128x128 pixel
duration = 2  # 2 seconds
ncircles = 20 # Number of circles

def make_frame(t):

    surface = gz.Surface(W,H)

    for i in range(ncircles):
        angle = 2*np.pi*(1.0*i/ncircles+t/duration)
        center = W*( 0.5+ gz.polar2cart(0.1,angle))
        circle = gz.circle(r= W*(1.0-1.0*i/ncircles),
                              xy= center, fill= (i%2,i%2,i%2))
        circle.draw(surface)

    return surface.get_npimage()

clip = mpy.VideoClip(make_frame, duration=duration)
clip.write_gif("circles.gif",fps=15, opt="OptimizePlus", fuzz=10)

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM