Google Colaboratory에서 애니메이션 보기
6829 단어 GoogleColaboratory파이썬
TL;DR
Google Colaboratory상에서 무언가 이미지를 그려서 그것을 애니메이션으로 한다면, 파일을 일련번호로 토하고 apng로 해 버리는 것이 편하다.
소개
Google Colab에서 무언가를 계산하고 그 결과를 애니메이션으로 보여주고 싶습니다. 보통으로 한다면 matplotlib로 가시화할 것이다. 원래 Colab에서 이미지를 표시하는 것도 한 번 파일에 뱉은 다음 표시 가 편하기도 한다.
그리고, 애니메이션에 대해서도 여러가지 시행착오했지만, 결국 한번 연번 파일로 토해 버리고 나서, 애니메이션 PNG(APNG)로 해 버리는 것이 제일 편했다.
샘플 코드
APNG 설치
Google Colab의 첫 번째 셀에 APNG
를 설치합니다.
!pip install APNG
아마도 문제없이 설치되어 "Successfully installed APNG-0.3.3"이라고 표시 될 것입니다.
일련 파일 출력
뭐든지 좋기 때문에, 일련의 PNG 파일을 토하는 코드를 쓰자. 이하는 원주상을 원이 주회할 뿐의 애니메이션.
from apng import APNG
from math import cos, pi, sin
from PIL import Image, ImageDraw
import IPython
def save(index, frames):
filename = "file%02d.png" % index
im = Image.new("RGB", (100, 100), (255, 255, 255))
draw = ImageDraw.Draw(im)
x = 30*cos(2*pi*index/frames) + 50
y = 30*sin(2*pi*index/frames) + 50
draw.ellipse((20,20,80,80),outline=(0,0,0))
draw.ellipse((x-5, y-5, x+5, y+5), fill=(0, 0, 255))
im.save(filename)
return filename
나중에 APNG
에 걸리므로 파일 이름을 반환합니다.
APNG에 전달하여 애니메이션 만들기
APNG
는 파일 목록을 먹으면 APNG로 해주는 메소드 from_files
저장된 파일은 save
로 그대로 표시할 수 있다.
files = []
frames = 50
for i in range(frames):
files.append(save(i, frames))
APNG.from_files(files, delay=100).save("animation.png")
IPython.display.Image("animation.png")
실행 결과는 이런 느낌.
셀을 실행하면 무사히 Google Colab에서 애니메이션이 표시되었습니다.
요약
Google Colab에서 애니메이션을 표시하는 방법을 소개했습니다. 수치 계산의 시뮬레이션이나, 무언가 움직이는 것의 가시화 뭔가를 하는 경우, Matplotlib로 노력하는 것보다, PIL로 연속번 png 토해 APNG 만드는 편이 편하다고 생각한다.
Reference
이 문제에 관하여(Google Colaboratory에서 애니메이션 보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kaityo256/items/8ff3219de61433b7be87
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Google Colab에서 무언가를 계산하고 그 결과를 애니메이션으로 보여주고 싶습니다. 보통으로 한다면 matplotlib로 가시화할 것이다. 원래 Colab에서 이미지를 표시하는 것도 한 번 파일에 뱉은 다음 표시 가 편하기도 한다.
그리고, 애니메이션에 대해서도 여러가지 시행착오했지만, 결국 한번 연번 파일로 토해 버리고 나서, 애니메이션 PNG(APNG)로 해 버리는 것이 제일 편했다.
샘플 코드
APNG 설치
Google Colab의 첫 번째 셀에 APNG
를 설치합니다.
!pip install APNG
아마도 문제없이 설치되어 "Successfully installed APNG-0.3.3"이라고 표시 될 것입니다.
일련 파일 출력
뭐든지 좋기 때문에, 일련의 PNG 파일을 토하는 코드를 쓰자. 이하는 원주상을 원이 주회할 뿐의 애니메이션.
from apng import APNG
from math import cos, pi, sin
from PIL import Image, ImageDraw
import IPython
def save(index, frames):
filename = "file%02d.png" % index
im = Image.new("RGB", (100, 100), (255, 255, 255))
draw = ImageDraw.Draw(im)
x = 30*cos(2*pi*index/frames) + 50
y = 30*sin(2*pi*index/frames) + 50
draw.ellipse((20,20,80,80),outline=(0,0,0))
draw.ellipse((x-5, y-5, x+5, y+5), fill=(0, 0, 255))
im.save(filename)
return filename
나중에 APNG
에 걸리므로 파일 이름을 반환합니다.
APNG에 전달하여 애니메이션 만들기
APNG
는 파일 목록을 먹으면 APNG로 해주는 메소드 from_files
저장된 파일은 save
로 그대로 표시할 수 있다.
files = []
frames = 50
for i in range(frames):
files.append(save(i, frames))
APNG.from_files(files, delay=100).save("animation.png")
IPython.display.Image("animation.png")
실행 결과는 이런 느낌.
셀을 실행하면 무사히 Google Colab에서 애니메이션이 표시되었습니다.
요약
Google Colab에서 애니메이션을 표시하는 방법을 소개했습니다. 수치 계산의 시뮬레이션이나, 무언가 움직이는 것의 가시화 뭔가를 하는 경우, Matplotlib로 노력하는 것보다, PIL로 연속번 png 토해 APNG 만드는 편이 편하다고 생각한다.
Reference
이 문제에 관하여(Google Colaboratory에서 애니메이션 보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kaityo256/items/8ff3219de61433b7be87
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
!pip install APNG
from apng import APNG
from math import cos, pi, sin
from PIL import Image, ImageDraw
import IPython
def save(index, frames):
filename = "file%02d.png" % index
im = Image.new("RGB", (100, 100), (255, 255, 255))
draw = ImageDraw.Draw(im)
x = 30*cos(2*pi*index/frames) + 50
y = 30*sin(2*pi*index/frames) + 50
draw.ellipse((20,20,80,80),outline=(0,0,0))
draw.ellipse((x-5, y-5, x+5, y+5), fill=(0, 0, 255))
im.save(filename)
return filename
files = []
frames = 50
for i in range(frames):
files.append(save(i, frames))
APNG.from_files(files, delay=100).save("animation.png")
IPython.display.Image("animation.png")
Google Colab에서 애니메이션을 표시하는 방법을 소개했습니다. 수치 계산의 시뮬레이션이나, 무언가 움직이는 것의 가시화 뭔가를 하는 경우, Matplotlib로 노력하는 것보다, PIL로 연속번 png 토해 APNG 만드는 편이 편하다고 생각한다.
Reference
이 문제에 관하여(Google Colaboratory에서 애니메이션 보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kaityo256/items/8ff3219de61433b7be87텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)