画像を描画しアニメーションGIFを作成する
画像処理ライブラリPillow(PIL)を使うとアニメーションGIFファイルを作成できます。
環境
- windows10 home
- Anaconda 3/ jupyter notebook 5.6.0
- Python 3.7.0
- Pillow 5.2.0
やること
- 640x480の黒ベタ画像を描画
- 直径200pxの赤で塗りつぶした円を描画
- 「赤い丸が動きます」という文字48ptのメイリオで描画
- 円の描画位置を変えたイメージオブジェクトを20個生成
- イメージオブジェクトからアニメーションGIFを生成しファイルに保存
コード
リストimagesに生成したイメージオブジェクトを格納し、メソッド.saveでファイル保存します。
durationは画像の表示間隔(ここでは50ms)、loopはGIFの繰り返し(0は無限)の設定です。
from PIL import Image, ImageDraw, ImageFont images =[] # イメージ用リスト for i in range(20): im = Image.new('RGB', (640, 480), (0, 0, 0)) # 下地となるイメージオブジェクトの生成 draw = ImageDraw.Draw(im) # drawオブジェクトを生成 ellipse_x = i *20 # 描画位置のx座標 draw.ellipse((ellipse_x, 150, ellipse_x+200, 350), fill=(255, 0, 0)) # 円の描画 font = ImageFont.truetype('C:\Windows\Fonts\meiryo.ttc', 48) # フォントの指定 draw.multiline_text((100, 50), '赤い丸が動きます', fill=(255,255,255), font=font) # 文字の描画 images.append(im) # リストにイメージを追加 images[0].save('test.gif',save_all=True,append_images=images[1:],optimize=False,duration=50,loop=0) # gif動画保存
実行結果
アニメーションGIFファイルが保存されます
以下のサイトを参考にさせていただきました
note.nkmk.me>>Python, PillowでアニメーションGIFを作成、保存