LoginSignup
0
1

Macの.movからgifを作成する簡易GUIツールつくりました!Python

Last updated at Posted at 2024-01-13

0.完成例

gamen_test1.gif

※pythonのインストールが必須です

0.5.Pythonで使う外部ライブラリの「ffmpeg」のインストール!

-1.「homebrew」のインストール

外部ライブラリをインストールするためのツールです。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
-2.「ffmpeg」のインストール
brew install ffmpeg

1.デスクトップ等に[convertToGif.py]を作成し下記を記述する!

convertToGif.py

import tkinter as tk
from tkinter import filedialog
import subprocess
import os

def convert_mov_to_gif(input_path):
    # 入力ファイル名から拡張子を取り除いた名前を生成
    input_filename = os.path.splitext(os.path.basename(input_path))[0]
    # .gifファイル名を生成
    output_file = f"{input_filename}.gif"

    # ffmpegコマンドを実行して.movを.gifに変換
    cmd = ["/usr/local/bin/ffmpeg", "-i", input_path, "-r", "24", output_file]
    try:
        subprocess.run(cmd, check=True)
        result_label.config(text=f"{input_filename}.mov を {output_file} に変換しました。", fg="green")
        
        # 変換が完了したらウィンドウを1秒後に閉じる
        root.after(1000, close_window)
    except subprocess.CalledProcessError as e:
        result_label.config(text=f"ffmpegコマンドの実行中にエラーが発生しました: {e}", fg="red")
    except Exception as e:
        result_label.config(text=f"エラーが発生しました: {e}", fg="red")

def browse_file():
    file_path = filedialog.askopenfilename(filetypes=[("MOV ファイル", "*.mov")])
    if file_path:
        convert_mov_to_gif(file_path)

def close_window():
    root.destroy()

# Tkinterウィンドウを作成
root = tk.Tk()
root.title("MOV to GIF Converter")

# ファイル選択ボタン
browse_button = tk.Button(root, text="MOVファイルを選択", command=browse_file)
browse_button.pack(pady=20)

# 結果表示ラベル
result_label = tk.Label(root, text="", fg="black")
result_label.pack()

# ウィンドウを表示
root.mainloop()



2.完成!

ダブルクリックしてmovファイルを選択したらgifができる!

※ダブルクリックでうまく起動しない時

-1.作ったpyファイルを右クリック>情報をみるを選択

スクリーンショット 2024-01-13 13.05.47.png

-2.このアプリケーションで開くに「Python Launcher.app」を選択

スクリーンショット 2024-01-13 13.06.35.png

これでいけると思います。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1