![見出し画像](https://assets.st-note.com/production/uploads/images/75457166/rectangle_large_type_2_16a5720f4e7f19ad592c4dceadda317f.jpeg?width=1200)
PythonでGIF画像を作ろう!
こんばんは、アリカです。
突然ですが皆さんはこのような画像を見たことがありますでしょうか。
![](https://assets.st-note.com/production/uploads/images/75453695/picture_pc_f9f1d2e3920d7b2025a1fbce15e5f049.gif)
こちらの画像はGIFといって、簡易的なアニメーションを表示できるものになります。
静止画だと伝わりづらいけど動画をアップするまでもないという時にはGIF画像の出番です。
今回はそんなGIF画像をPythonを使って作成していきます。
yolov8という最新の物体検出アルゴリズムを使ってリアルタイムの物体検知を行っています。
画像処理に興味がある方は是非こちらの動画も是非ご確認ください!
テキストVer
本題
それでは実際に作り方を見ていきます。
まず、GIF画像に使う画像のファイル名を変更します。
この後for文を使用するため、"img数字"としておきます。
※既に連番がついている、またはファイル数が少なく手動で変更できる方は必要ありません。
※画像ファイルは同じディレクトリ内にあるとします。
import glob
import os
path = './*.png'
i = 1
files = glob.glob(path)
for file in files:
os.rename(file, './img' + str(i) + '.png')
i+=1
コードの説明をすると、path = './*.png',files = glob.glob(path)でディレクトリ内にある拡張子がpngのファイルをすべて取得しています。
それに対してfor文を使用し、ファイル名を変更します。
変更ができたらGIF画像を作成します。
from PIL import Image
pictures=[]
for j in range(i-1):
picture='img' +str(j+1)+ '.png'
img = Image.open(picture)
pictures.append(img)
pictures[0].save('animation.gif',save_all=True, append_images=pictures[1:],
optimize=False, duration=600, loop=0)
for文を使って画像をリストの中に入れて、最後にリストの中身を連結してGIF画像を作成しています。
連結する際の設定として、
duration:各画像の表示時間(ミリ秒)
loop:繰り返しの回数(loop=0で無限ループ)
を設定することができます。
最後に
本日はここまでとなります。
簡単に作ることができるので是非試してみてください :->
最後まで読んでいただきありがとうございました。
スキ・フォロー・コメントお待ちしております!
OpenCVを体系的に学びたい方におすすめです。
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?