Pythonで静止画からアニメGIFを作成の方法
画像をGIFアニメにするには、PythonのPILライブラリ(Python Imaging Library)またはOpenCVライブラリを使用できます。以下はPILライブラリを使用するサンプルコードです:
from PIL import Image
# 打开图片
image1 = Image.open('image1.jpg')
image2 = Image.open('image2.jpg')
image3 = Image.open('image3.jpg')
# 创建一个新的文件夹保存动画帧
image1.save('animated.gif',
save_all=True,
append_images=[image2, image3],
optimize=False,
duration=500,
loop=0)
Image.open()メソッドでimage1.jpg、image2.jpg、image3.jpgの3枚の画像を読み込みます。そして、save()メソッドでそれらの画像を1つのアニメーションフレームとして保存します。save_all=Trueはすべてのフレームを保存することを示し、append_imagesパラメーターは追加でアニメーションに加える画像フレームを指定し、optimize=Falseは最適化を行わないことを示し、durationパラメーターは各フレームの表示時間をミリ秒で示し、loopパラメーターは繰り返しの回数を示し、0は無限に繰り返すことを示します。
GIFアニメーションをさらに編集するには、 ImageIO ライブラリと NumPy ライブラリを使用してフレームを読み取って処理します。以下にサンプルコードを示します。
import imageio
import numpy as np
# 读取动画帧
image1 = imageio.imread('image1.jpg')
image2 = imageio.imread('image2.jpg')
image3 = imageio.imread('image3.jpg')
# 创建一个空白动画
animated_image = np.zeros_like(image1)
# 合并帧
animated_image[0:100, 0:100, :] = image1
animated_image[100:200, 100:200, :] = image2
animated_image[200:300, 200:300, :] = image3
# 保存动画
imageio.imwrite('animated.gif', animated_image, duration=0.5)
この例では、画像フレームを最初にImageDataIOライブラリのimread()関数を使用して読み込みます。次に、numpyライブラリのzeros_like()関数を使用して、画像と同じサイズの空白フレームを作成します。そして、スライス演算を使用して、読み込んだ画像フレームを対応する場所に配置します。最後に、ImageDataIOライブラリのimwrite()関数を使用して、アニメーションフレームをGIFファイルとして保存します。duration引数は、各フレームの表示時間を秒単位で表します。