Pythonでいろいろやってみる

Pythonを使った画像処理や機械学習などの簡単なプログラムを載せています。

画像を描画しアニメーション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ファイルが保存されます f:id:T_A_T:20200209105536g:plain

以下のサイトを参考にさせていただきました

note.nkmk.me>>Python, PillowでアニメーションGIFを作成、保存

ブログランキングに参加しています

にほんブログ村 IT技術ブログへ
にほんブログ村