извлекаем кадры gif анимации

Вот простой скрипт на Python, который откроет GIF-файл, извлечёт все кадры и сохранит их в папку (например, "frames"). Я предполагаю, что GIF называется "animation.gif" и лежит в той же папке, что и скрипт. Ты можешь изменить пути по необходимости.

Код на Python:

from PIL import Image
import os

# Путь к GIF-файлу (замени на свой)
gif_path = 'animation.gif'

# Папка для сохранения кадров (создастся, если не существует)
output_folder = 'frames'

# Создаём папку, если её нет
os.makedirs(output_folder, exist_ok=True)

# Открываем GIF
with Image.open(gif_path) as im:
    # Получаем количество кадров
    n_frames = im.n_frames
    print(f"Найдено {n_frames} кадров в GIF.")
   
    # Проходим по каждому кадру
    for i in range(n_frames):
        im.seek(i)  # Переходим к i-му кадру
        frame_path = os.path.join(output_folder, f'frame_{i:03d}.png')  # Сохраняем как PNG с нумерацией
        im.save(frame_path)
        print(f"Сохранён кадр {i+1}/{n_frames}: {frame_path}")

print("Все кадры сохранены!")


Как это работает:
Импорт библиотек: PIL.Image для работы с изображениями, os для работы с файлами и папками.

Открытие GIF: Функция Image.open() загружает файл.
Извлечение кадров: n_frames даёт количество кадров. Цикл for i in range(n_frames) проходит по каждому, im.seek(i) переключает на нужный кадр.
Сохранение: Каждый кадр сохраняется как отдельный PNG-файл (с нумерацией, чтобы избежать перезаписи). Формат можно изменить на JPEG, заменив .png на .jpg.
Создание папки: os.makedirs() создаёт папку "frames", если её нет.

Запуск:
Сохрани код в файл, например, extract_frames.py.
Помести GIF в ту же папку или укажи полный путь в gif_path.
Запусти: python extract_frames.py.
Кадры появятся в папке "frames" как frame_000.png, frame_001.png и т.д.


Рецензии