извлекаем кадры 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 и т.д.
Свидетельство о публикации №125110604974
