![見出し画像](https://assets.st-note.com/production/uploads/images/113097820/rectangle_large_type_2_3901e4089e522ac0b2d0d46ac315b2f3.png?width=1200)
【Python勉強メモ】画像をつなげて動画にするプログラムを作ってみた
画像をつなげて動画にしたい!
Pythonなら簡単にできますよ(^^)
プログラミング副業挑戦中の そばごろう です。
twitter ☛https://twitter.com/sobagoro1
今回はChatGPTにPythonで画像をつなげて動画にするプログラムを書いてもらう手順をまとめます。
1.ChatGPTを起動
2.以下のプロンプトを入力
Pythonで以下のプログラムを書いて
1.ポップアップでフォルダを指定
2.フォルダ内の画像を繋げて動画を作成(1画像あたり4秒)
3.作成した動画を元のファイルに保存(.mp4形式)
※画像形式はjpegとpngを対象として
※フレームは(640, 480)に統一して
※作成が完了したら日本語のメッセージをポップアップで出して
※作成した動画は画像を選んだフォルダに保管して
※作成された動画は「movie_現在日時」の名前で自動保存して
※Image.ANTIALIAS属性は使用しないで
「※」で指定している条件は何回か試してエラーになった部分を再発させないように記載しています。
3.ChatGPTの返事を確認する
すぐに返答が表示されました。
何回かやり取りして使い勝手が良いプログラムに修正しました。
以下のリンクでChatGPTとのやり取りを共有します。
最終的なソース
import tkinter as tk
from tkinter import filedialog
from PIL import Image
import os
import imageio
import datetime
import numpy as np
# フォルダを指定するためのポップアップを表示
root = tk.Tk()
root.withdraw() # メインウィンドウを非表示にする
folder_path = filedialog.askdirectory(title="フォルダを選択してください")
# フォルダ内の画像を取得
image_paths = [os.path.join(folder_path, filename) for filename in os.listdir(folder_path) if filename.lower().endswith(('.jpeg', '.jpg', '.png'))]
# 動画のフレームレートとサイズを設定
frame_rate = 0.25 # 1枚あたり4秒の速さで動画を再生
frame_size = (640, 480)
# 動画の保存名を生成
current_datetime = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
output_filename = os.path.join(folder_path, f"movie_{current_datetime}.mp4")
# 画像から動画を作成
video_writer = imageio.get_writer(output_filename, fps=frame_rate)
for image_path in image_paths:
img = Image.open(image_path)
img = img.resize(frame_size)
frame = np.array(img) # Imageをndarrayに変換
video_writer.append_data(frame)
video_writer.close()
# 作成完了メッセージを表示
tk.messagebox.showinfo("完了", "動画の作成が完了しました。")
4.作成したプログラムの動作確認
ChatGPTに作成してもらったソースをVS Codeに貼り付けて動作確認します。
![](https://assets.st-note.com/img/1691742803937-dSuyKAUElC.png?width=1200)
デバッグ実行ボタンを押すとフォルダ選択のポップアップが表示されました。
![](https://assets.st-note.com/img/1691742989488-xeFKaTRG3r.png?width=1200)
5つの画像ファイルが入っているフォルダを選択しました。
![](https://assets.st-note.com/img/1691742856570-QHsoLMTsbD.png?width=1200)
すぐに完了メッセージが表示されました。
![](https://assets.st-note.com/img/1691744554858-kLFgLoWsf4.png)
選択したフォルダにmp4の動画ファイルが作成されていました。
![](https://assets.st-note.com/img/1691744630018-8GhMn7QtTB.png)
再生すると動画になっていました。
→以下はgifを添付、5秒毎に画像が切り替わります
![](https://assets.st-note.com/production/uploads/images/113087457/picture_pc_d049084b9b13ab9ff9d29cf8fa1d5ca0.gif?width=1200)
【MP4→gifに変換できるサイト】
5.作成したプログラムのexe化
以前解説した手順で作成したプログラムのexe化します。
今回は3つのライブラリをインストールしました。
pip install imageio
→pillow と numpy も含む
pip install datetime
pip install pyinstaller
アイコンを指定してexe化するコマンドを実行
pyinstaller -F -w --icon=ToMovie.ico PhotoToMovie2.py
exeファイルができました(^^)/
![](https://assets.st-note.com/img/1691753459721-qrxotIx4xm.png)
exeを実行して動作確認できたら完了です。
まとめ
ChatGPTにPythonで画像をつなげて動画にするプログラムを書いてもらう手順をまとめました。
同じように勉強中の方の参考になればうれしいです。
私のプロフィール↓
勉強メモ シリーズ↓
ChatGPTを使ったプログラミング↓
最後まで閲覧ありがとうございましたm(__)m