[TUBUYAKI]GIF画像作成アプリ作ってみた

Gifを作るアプリを作ってみました。BOOTHとかでシェアウエアを販売する際、動画を配置するにはYoutubeしか認めてくれない(サーバ費用抑えたいんだね)ので、GIFならいいでしょ?な感じで作り始めました。mp4,フォルダをドラッグ&ドロップで左右のUIに投げ込めば、GIFコマに追加されます(動画はサンプル間隔を設定後、動画からGIF作成ボタンを押してください)

凡そ4時間でほぼ完成。まだBOOTHに上げていませんけど、ご興味ありましたら、そのうちに上がるかもしれません。気が向けば…

GifMaker

GIFファイルを作成・編集するためのWindowsアプリケーションです。

概要

GifMakerは、動画ファイルや画像ファイルからGIFアニメーションを作成し、編集できるGUIアプリケーションです。

主な機能

1. ファイルの読み込み

メニューから読み込み

  • GIF読み込み: 既存のGIFファイルを読み込み、全コマを表示・編集できます
  • 動画読み込み: MP4、AVI、MOV、MKVなどの動画ファイルを読み込みます
  • フォルダから画像読み込み: 指定したフォルダ内の画像ファイル(PNG、JPG、JPEG、GIF、BMP、TIFF)からGIFを作成します

ドラッグ&ドロップ

  • 画像エリア: 画像ファイルやフォルダをドロップして読み込み
  • 動画エリア: 動画ファイルをドロップして読み込み

2. 動画からGIF作成

  • 間隔指定による一括作成: 動画を読み込んだ後、フレーム間隔を指定して「動画からGIF作成」ボタンで一括作成
  • コマ送りによる選択追加:
    • 「前のコマ」「次のコマ」ボタンでフレームを1つずつ確認
    • 「GIFに追加」ボタンで現在表示中のフレームをGIFリストに追加
  • 動画再生: 「再生」ボタンで動画を再生(約30fps)

3. GIF編集機能

コマの選択

  • 単一選択: コマをクリック
  • 複数選択: Ctrlキーを押しながらクリック
  • 範囲選択: Shiftキーを押しながらクリック
  • すべて選択: 編集メニューから「すべて選択」
  • 選択解除: 編集メニューから「選択解除」

コマの操作

  • 画像表示: コマの画像をクリックすると、左側の画像表示エリアに表示されます
  • 順番変更: 選択したコマをドラッグ&ドロップで移動
  • 削除:
    • 編集メニューから「選択したコマを削除」
    • 右クリックメニューから「削除」
  • コピー/切り取り/貼り付け: 右クリックメニューから操作可能
  • 移動: 右クリックメニューから「先頭に移動」「末尾に移動」

ディレイタイム設定

  • 個別設定: 各コマのSpinboxでディレイタイム(ミリ秒)を設定
  • 一括設定: 一括ディレイ設定で全コマまたは選択したコマに同じディレイを適用

4. 保存機能

  • GIF保存: ファイルメニューから「GIF保存」で作成したGIFを保存
  • 各フレームのディレイタイムが正しく保存されます
  • Windowsフォトアプリなどで正しく再生されます

操作方法

基本的な操作フロー

  1. ファイルを読み込む
    • メニューから選択、またはドラッグ&ドロップ
  2. GIFを作成・編集
    • 動画からGIF作成、または画像を追加
    • コマを選択して順番を変更
    • ディレイタイムを設定
  3. 保存
    • ファイルメニューから「GIF保存」

キーボードショートカット

  • Ctrl + クリック: 複数選択
  • Shift + クリック: 範囲選択
  • Enterキー: Spinboxの値を確定

右クリックメニュー

コマ上で右クリックすると、以下のメニューが表示されます:

  • コピー: 選択したコマをクリップボードにコピー
  • 切り取り: 選択したコマをクリップボードにコピーして削除
  • 貼り付け: クリップボードのコマを指定位置に貼り付け
  • 削除: 選択したコマを削除
  • 先頭に移動: 選択したコマを先頭に移動
  • 末尾に移動: 選択したコマを末尾に移動

技術仕様

開発環境

  • 言語: Python 3.12
  • GUIフレームワーク: tkinter
  • ビルドツール: pyinstaller
  • ウィンドウサイズ: 720×480ピクセル

使用ライブラリ

  • Pillow: 画像処理・GIF作成
  • opencv-python: 動画処理・フレーム抽出
  • imageio: GIF読み込み・保存
  • imageio-ffmpeg: 動画処理用FFmpegバイナリ
  • numpy: 数値計算
  • tkinterdnd2: ドラッグ&ドロップ機能

対応ファイル形式

読み込み可能な動画形式

  • MP4, AVI, MOV, MKV, WMV, FLV, WEBM

読み込み可能な画像形式

  • PNG, JPG, JPEG, GIF, BMP, TIFF

保存形式

  • GIF(アニメーションGIF)

設定

アプリケーションは config.json ファイルに設定を保存します:

  • default_delay: デフォルトのディレイタイム(ミリ秒)
  • video_frame_interval: 動画からGIF作成時のデフォルト間隔

設定は「設定」メニューから変更できます。

トラブルシューティング

動画が読み込めない場合

  • 対応している動画形式か確認してください
  • imageio-ffmpegが正しくインストールされているか確認してください

GIFが正しく保存されない場合

  • 各コマのディレイタイムが正しく設定されているか確認してください
  • 保存先のディスク容量を確認してください

ドラッグ&ドロップが動作しない場合

  • tkinterdnd2が正しくインストールされているか確認してください
  • 仮想環境がアクティブになっているか確認してください

ライセンス

詳細は LICENSE.md を参照してください。

バージョン情報

  • バージョン: 1.0
  • 最終更新: 2025年12月

サポート

問題が発生した場合は、以下の情報を含めて報告してください:

  • 使用しているOSのバージョン
  • Pythonのバージョン
  • エラーメッセージ(該当する場合)
  • 再現手順

GifMaker – GIF作成アプリケーション