gif — запись gif

Модуль gif используется для записи gif.

class Gif – запись Gif

Вы можете использовать модуль gif для записи небольших видеоклипов. Обратите внимание, что файлы gif сохраняют несжатые данные изображения. Поэтому они лучше всего подходят для записи коротких видеоклипов, которыми вы хотите поделиться. Для длинных клипов используйте mjpeg.

Пример использования:

import csi
import gif
import time

# Setup camera.
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.QQVGA)
csi0.snapshot(time=2000)

# Create the gif object.
g = gif.Gif("example.gif")

# Record for 4 seconds.
start = time.ticks_ms()
while time.ticks_diff(time.ticks_ms(), start) < 4000:
    g.add_frame(csi0.snapshot())

# Finalize.
g.close()
class gif.Gif(filename: str, width: int | None = None, height: int | None = None, color: bool | None = None, loop: bool = True)

Создаёт объект Gif, в который можно добавлять кадры. filename – это путь для сохранения записи gif.

width по умолчанию равен горизонтальному разрешению основного буфера кадра.

height по умолчанию равен вертикальному разрешению основного буфера кадра.

color по умолчанию равен цветовому режиму основного буфера кадра:

  • False приводит к gif sensor.GRAYSCALE с 7 битами на пиксель.

  • True приводит к gif sensor.RGB565 с 7 битами на пиксель.

loop когда True, приводит к автоматическому зацикливанию gif при воспроизведении.

width() int

Возвращает ширину (горизонтальное разрешение) gif.

height() int

Возвращает высоту (вертикальное разрешение) gif.

format() int

Возвращает sensor.RGB565, если color равно True, иначе sensor.GRAYSCALE.

size() int

Возвращает текущий размер файла gif. Это значение обновляется после добавления кадров.

loop() bool

Возвращает, был ли объект gif создан с включённым loop.

add_frame(image: image.Image, delay: int = 10) None

Добавляет изображение в запись gif. Ширина, высота и цветовой режим изображения должны соответствовать значениям, использованным в конструкторе.

delay – это число сантисекунд ожидания перед отображением этого кадра после предыдущего кадра.

close() None

Финализирует запись gif. Этот метод должен быть вызван по завершении записи, чтобы файл стал доступным для просмотра.