pbj0812의 코딩 일기

[PYTHON] celluloid 를 활용한 gif 애니메이션 제작 본문

ComputerLanguage_Program/PYTHON

[PYTHON] celluloid 를 활용한 gif 애니메이션 제작

pbj0812 2020. 10. 12. 23:59

0. 목표

 - celluloid 를 활용한 gif 애니메이션 제작

1. 실습

 1) celluoid 설치

pip install celluloid

 2) library 호출

import numpy as np
from matplotlib import pyplot as plt
from celluloid import Camera

 3) 피규어 객체 생성

fig = plt.figure()
ax = fig.subplots()

 4) 카메라 객체 생성

camera = Camera(fig)

 5) 데이터 생성

x = np.linspace(0, 2 * np.pi)

 6) plot 제작

  - x 는 그대로 놔둬서 고정시키고, y가 되는 부분인 np.sin(x) 부분에 i 를 더해줘서 밀려나가는 형식으로 제작

  - camera.snape() 을 통하여 스탭마다 저장

for i in x:
    ax.plot(x, np.sin(x + i), color = 'r')
    camera.snap()

 7) 애니메이션 제작

  - interval 을 통한 시간 딜레이 조정 가능

  - blit 를 이용하면 생성 속도가 빠르다고 함.(링크)

  - save 를 통한 저장

animation = camera.animate(interval=50, blit=True)
animation.save('sine.gif')

2. 결과

3. 참고

 - celluloid 0.2.0

 - sines.py(원본 예제)

 - matplotlib.animation

 - blitting 과 bitblt의 뜻

 - 4.3 Matplotlib의 이해

 - Python Numpy 강좌 : 제 4강 - 등간격

Comments