TL; DR
如果您在Google合作实验室上绘制图像并设置动画效果,则可以轻松地按顺序吐出文件并将其设置为apng。
介绍
我想在Google Colab上进行计算,并将计算结果显示为动画。如果您正常执行此操作,则可以使用matplotlib对其进行可视化,但是在Colab上设置动画效果相当麻烦。首先,将图像分割成文件后,很容易在Colab上显示图像。
在
中,我对动画进行了大量的试验和错误,但是最后,最简单的方法是将其作为序列号文件吐出,然后将其转换为动画PNG(APNG)。
样例代码
安装APNG
在Google Colab的第一个单元格中安装
1 | !pip install APNG |
可能会安装它,没有任何问题,您应该看到"成功安装了APNG-0.3.3"。
序列号文件输出
一切都很好,所以让我们写一个代码,将带有序列号的PNG文件吐出来。以下是一个动画,其中一个圆围绕圆周旋转。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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以创建动画
使用
1 2 3 4 5 6 | 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上显示动画。在模拟数值计算或可视化可移动的东西时,我认为通过PIL喷出序列号png来制作APNG比使用Matplotlib进行尝试更容易。