見出し画像

PythonでGIFの秒数とFPSをカウントする「GIF秒数カウンター」作ってみた

以前、MP4をGIFに変換するコードを公開しました。
これには、GIFの秒数とFPSを計測する機能がなかったので、Pythonで作っちゃいました。

この計測のためには、Pillowが必要なので、インストールしてない場合はインストールします。以下のコマンドを実行してください。

pip install pillow

GIFの秒数とFPSをカウントするPythonコード

from PIL import Image
from tkinter import Tk, filedialog

def get_gif_info(filepath):
    with Image.open(filepath) as im:
        total_duration = 0
        frame_count = 0
        try:
            while True:
                duration = im.info.get('duration', 0)
                total_duration += duration
                frame_count += 1
                im.seek(im.tell() + 1)
        except EOFError:
            pass
    return total_duration / 1000, frame_count  # (秒, フレーム数)

if __name__ == "__main__":
    root = Tk()
    root.withdraw()  # メインウィンドウを表示しない
    gif_path = filedialog.askopenfilename(
        title="GIFファイルを選択してください",
        filetypes=[("GIF files", "*.gif")]
    )
    if gif_path:
        duration, frames = get_gif_info(gif_path)
        if duration > 0:
            fps = frames / duration
        else:
            fps = 0
        print(f"総再生時間: {duration} 秒")
        print(f"フレーム数: {frames} 枚")
        print(f"1秒間あたりのフレーム数: {fps:.2f} fps")
    else:
        print("ファイルが選択されませんでした。")

使い方

①アプリを起動
②ボタンを押すとエクスプローラーが起動するのでGIFファイルを選択
③秒数とフレーム数、FPSが表示

これをこう!

こういうのは作っちゃった方が早いですね!

AIと一緒なら、挫折せず、AIのせいにしながら楽しくつくれます。
PythonはVSCodeだけで完結するのでいいよなあ。軽いし早いし。
興味があれあ、レッツチャレンジ!

誰かの参考になれば幸いです。



いいなと思ったら応援しよう!